|
|
||||||||||||||||
.NET 4.x Классы или интерфейсы?10.06.2017, 23:28. Показов 9037. Ответов 129
Метки нет (Все метки)
Согласно новомодным книжкам от очередных гуру программистов, делаю на уровне интерфейсов.
Итак, накидаю примерчик:
Уно:
1
|
||||||||||||||||
| 10.06.2017, 23:28 | |
|
Ответы с готовыми решениями:
129
Как правильно разработать архитектуру программы (классы, интерфейсы)
Интерфейсы. Выделить у классов общий интерфейс(или интерфейсы) |
|
|
|
| 12.06.2017, 20:00 [ТС] | |
|
Psilon, так вы case на типе сделайте. Так то понятно что всё гут.
0
|
|
|
14352 / 9455 / 1360
Регистрация: 21.01.2016
Сообщений: 35,644
|
|
| 12.06.2017, 20:10 | |
|
Psilon, интересная оптимизация на скриншоте.
0
|
|
| 13.06.2017, 06:55 | |
|
Не по теме: Psilon, Кликните здесь для просмотра всего текста
тред про ооп костыли для жуткой (да еще и медленной) эмуляции адт. как я и говорил c# для работы с данными не предназначен :)
0
|
|
|
14352 / 9455 / 1360
Регистрация: 21.01.2016
Сообщений: 35,644
|
|
| 13.06.2017, 06:58 | |
|
pycture, эм, что именно тут жуткое и тормозное?..
0
|
|
|
Master of Orion
|
||
| 13.06.2017, 12:22 | ||
|
pycture, шарп - язык общего назначения, он для всего предназначен :dunno: То, что есть более новые языки с более лучшим устройством - не удивительно, покуда мы не считаем, что всё уже изобрели, и хороших языков больше не появится. Алсо не уверен, что шарп медленнее. Бенчмарки в студию
![]() ![]() Architecture > Performance.
0
|
||
| 13.06.2017, 12:25 [ТС] | |
|
0
|
|
|
1195 / 588 / 88
Регистрация: 20.09.2012
Сообщений: 1,881
|
|||
| 13.06.2017, 13:14 | |||
|
адт Time: 2264 ms ![]() Добавлено через 2 минуты визитры отсюда Классы или интерфейсы?
0
|
|||
|
14352 / 9455 / 1360
Регистрация: 21.01.2016
Сообщений: 35,644
|
|
| 13.06.2017, 14:23 | |
|
pycture, замените в том коде
foreach на for, может результаты выровняются
0
|
|
|
1195 / 588 / 88
Регистрация: 20.09.2012
Сообщений: 1,881
|
|||
| 13.06.2017, 14:28 | |||
|
Добавлено через 1 минуту
0
|
|||
|
14352 / 9455 / 1360
Регистрация: 21.01.2016
Сообщений: 35,644
|
|
| 13.06.2017, 14:33 | |
|
pycture, нет, вы не поняли, уберите только в примере с Visitor.
![]() Можно посмотреть, как вы сравнивали?
0
|
|
|
|
|||
| 13.06.2017, 19:59 [ТС] | |||
|
Всё что там описывается как-то интуитивно реализовывал сам. От недостатка знаний в области программированя модель была, а вот реализация... а реализацию рефакторил ежемесячно ![]() Так что может впереди ещё этот визитор, если осознаю как он должен работать применительно ко мне, и подойдёт ли именно он или какой другой шаблон. Собсна, применительно к теме искал ответ на ненужный вопрос. А ответы участников для меня были лишь отзвуком правильности.
1
|
|||
|
1195 / 588 / 88
Регистрация: 20.09.2012
Сообщений: 1,881
|
|||
| 14.06.2017, 06:26 | |||
|
визиторы Time: 842 ms адт Time: 804 ms Добавлено через 2 минуты
0
|
|||
|
14352 / 9455 / 1360
Регистрация: 21.01.2016
Сообщений: 35,644
|
|
| 14.06.2017, 06:29 | |
|
pycture, я имел в виду увидеть ваш вариант использования "АДТ". Сколько возможных типов проверялось? Один, пять, десять? Это ведь тоже важно.
Добавлено через 1 минуту Не по теме: Кстати, нифига себе вышла разница между
0
|
|
|
1195 / 588 / 88
Регистрация: 20.09.2012
Сообщений: 1,881
|
||||||||
| 14.06.2017, 07:11 | ||||||||
|
Не по теме:
Кликните здесь для просмотра всего текста
Добавлено через 3 минуты
0
|
||||||||
|
14352 / 9455 / 1360
Регистрация: 21.01.2016
Сообщений: 35,644
|
||||||
| 14.06.2017, 07:18 | ||||||
|
pycture, а можно сравнить с кодом на C#? Я просто хз про F#, может компилятор тут свою двойную диспетчеризацию добавляет, с блекджеком и плюхами или ещё какую оптимизацию:
0
|
||||||
|
1195 / 588 / 88
Регистрация: 20.09.2012
Сообщений: 1,881
|
|||||||
| 14.06.2017, 07:45 | |||||||
|
приведенный код в 20 строк (если смотеть через ilspy), развертывается в какойто ад на c# размером в 1000 строк. Добавлено через 1 минуту Кликните здесь для просмотра всего текста
0
|
|||||||
|
14352 / 9455 / 1360
Регистрация: 21.01.2016
Сообщений: 35,644
|
||||||||
| 14.06.2017, 08:07 | ||||||||
|
То, что получилось кардинально отличается от варианта, что рассматривал ТС: пачка IF A IS B ELSE и просто реализует идею со свойством-признаком в общем, базовом классе, что я изначально предложил. В общем-то, оно работает быстрее остальных вариантов, потому, что тут ни метаданных (не считая каста) ни вызова виртуальных методов (если общее свойство не додуматься сделать виртуальным). Я так понимаю, что если типов станет очень много (вряд ли реалистичный сценарий), то вариант с тегами может начать отставать от двойной диспетчеризации. Особенно сильно это может проявиться, если для каждого типа понадобится каст. Ведь в DD кастов нет в принципе. Но сравнение вышло интересным. ![]() Добавлено через 3 минуты Собственно, всю картину портит это:
0
|
||||||||
| 14.06.2017, 08:07 | |
|
Обобщённые интерфейсы и классы Абстрактные классы и интерфейсы
Интерфейсы и абстрактные классы
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
[golang] Worker Pool
alhaos 09.06.2026
Worker Pool
Worker Pool — паттерн конкурентной обработки задач в Go.
Суть: фиксированное количество горутин-воркеров читают задачи из общего канала
и пишут результаты в общий канал результатов. . . .
|
[golang] Pipeline
alhaos 08.06.2026
Pipeline
Pipeline — паттерн конкурентной обработки данных в Go.
Суть: данные проходят через цепочку независимых стадий, каждая из которых работает в своей горутине и общается с соседями через. . .
|
Свет внутри себя
kumehtar 07.06.2026
Пусть это будет здесь
lIs4oanZS9Y
|
Программа для com-порта
Uhbif79 05.06.2026
Всем привет, давно хотел изучить Qt, начинал, бросал, потом снова начинал. И сейчас вот смог написать свою первую программу.
До этого имел опыт программирования микроконтроллеров, писал прошивки на. . .
|
|
Транскрипция 55-минутного видео через Whisper: WhisperDesktop облажался, спас Google Colab[
anaschu 01.06.2026
Понадобилось получить текст из свежезагруженного видео на YouTube. Казалось бы, задача на пять минут. Заняла полтора часа. Делюсь опытом — может кому пригодится последовательность решений.
. . .
|
21 мат мед. Планы на развитие модели здравоСохранения
anaschu 01.06.2026
AnyLogic: план развития симуляционной модели рабочего коллектива — динамический абсентеизм, реальные данные, три сценария сравнения
Продолжаю серию постов о дискретно-событийной модели рабочего. . .
|
20. Мат мед. Абсентеизм как отдельный тип простоя
anaschu 29.05.2026
Апдейт модели: исправленные баги, абсентеизм и новые механизмы
Продолжаю развивать ранее описанную модель рабочего коллектива на AnyLogic. За последние несколько дней был проведён серьёзный. . .
|
19. здоровье, усталость и психотип работника влияют на производительность предприятия, и наоборот, производительность на здоровье, усталось и психотип
anaschu 28.05.2026
Дискретно-событийная модель рабочего коллектива на AnyLogic: здоровье, выгорание, психотипы и микростимуляция
Привет, коллеги. Хочу поделиться итогами нескольких недель работы над симуляционной. . .
|