|
|
||||||||||||||||
.NET 4.x Классы или интерфейсы?10.06.2017, 23:28. Показов 8546. Ответов 129
Метки нет (Все метки)
Согласно новомодным книжкам от очередных гуру программистов, делаю на уровне интерфейсов.
Итак, накидаю примерчик:
Уно:
1
|
||||||||||||||||
| 10.06.2017, 23:28 | |
|
Ответы с готовыми решениями:
129
Как правильно разработать архитектуру программы (классы, интерфейсы)
Интерфейсы. Выделить у классов общий интерфейс(или интерфейсы) |
|
14130 / 9350 / 1350
Регистрация: 21.01.2016
Сообщений: 35,148
|
||||||
| 11.06.2017, 05:49 | ||||||
|
skilllab, эм, вообще, такое вызывает сомнения:
0
|
||||||
|
1195 / 588 / 88
Регистрация: 20.09.2012
Сообщений: 1,881
|
|||
| 11.06.2017, 07:10 | |||
|
Добавлено через 10 минут
0
|
|||
|
14130 / 9350 / 1350
Регистрация: 21.01.2016
Сообщений: 35,148
|
|
| 11.06.2017, 07:16 | |
|
pycture, не совсем понял. Вы сарказмируете?))
0
|
|
|
1195 / 588 / 88
Регистрация: 20.09.2012
Сообщений: 1,881
|
|||||||
| 11.06.2017, 09:47 | |||||||
0
|
|||||||
|
14130 / 9350 / 1350
Регистрация: 21.01.2016
Сообщений: 35,148
|
|
| 11.06.2017, 09:50 | |
|
pycture, не уверен, что понимаю ваш сленг)
Я хотел сказать, что, возможно, задача ТС-а решается совсем иначе. Соответственно, вопрос может не иметь смысла. Вот и всё.
0
|
|
|
|
|||
| 11.06.2017, 10:39 [ТС] | |||
|
Да тут программист один, заокеанский, такое как-то советовал.
Только у него IMaterialRow = IHasMaterial. Т.е. типа этим as узнаём есть ли у интерфейса IRowViewModel ещё и IHasMaterial. Ну вот меня такое кастование тоже смутило. List<IRowViewModel> и при необходимости (к примеру внесение изменений) узнаю as текущего и делаю касты.Раньше всё было БЕЗ интерфейсов. Был один класс и его наследники. Но я в процессе проектирования (это не одна неделя) чот очень запутался где что есть по свойствам, методам, даже по именам методов которые забыл override-ить и написал свои такие же внутри наследников (обладающие теми же задачами, но по другому написанные) и решил привести всё к единообразию.Кароч: as на интерфейс для последующего получения конкретных свойств класса, имплементирующего этот интерфейс - это хорошо/плохо/смотря_где? Добавлено через 3 минуты
0
|
|||
|
14130 / 9350 / 1350
Регистрация: 21.01.2016
Сообщений: 35,148
|
||
| 11.06.2017, 10:50 | ||
![]() Добавлено через 2 минуты Получается, что внешний код должен знать о классах, реализующих интерфейс, гораздо больше, чем нужно. Может быть двойную диспетчирезацию приладите (паттерн визитёр)? Так получается, что уходя от какого-то бардака вы всёравно к нему же и вернулись (насколько я понял).
0
|
||
|
|
||
| 11.06.2017, 10:51 [ТС] | ||
0
|
||
|
14130 / 9350 / 1350
Регистрация: 21.01.2016
Сообщений: 35,148
|
||
| 11.06.2017, 10:57 | ||
|
Можете в двух словах накидать описание вставшей перед вами задачи?
Добавлено через 4 минуты
0
|
||
|
|
|
| 11.06.2017, 11:00 [ТС] | |
|
Легко.
Есть таблица в которой сейчас 5 разделов. В таблицу попадает запись, обладающая общими свойствами (а-ля Имя, Обозначение, Раздел). Запись для каждого раздела обладает своими уникальными свойствами, которые нафиг не нужны для других разделов. Так же, запись может содержать в себе список других записей из других разделов (типа как Комплект). Так же, есть разделы, которые вообще не обладают своими записями а данные для них берутся из записей других разделов (типа как есть запись Деталь из раздела Детали, а есть раздел Материал у которого запись будет браться из Детали, но так же в раздел Материал может попасть и запись Материал не привязанная к Детали).
0
|
|
|
14130 / 9350 / 1350
Регистрация: 21.01.2016
Сообщений: 35,148
|
|
| 11.06.2017, 11:00 | |
|
Получается как российское законодательство: закон есть (IMaterialRow) но как его исполнять мы уже посмотрим от ситуации (as, is).
0
|
|
|
|
|
| 11.06.2017, 11:02 [ТС] | |
|
Задача такова: есть общий список, содержащий записи по таблице. В процессе нужно по полной работать с элементами списка изменяя свойства конкретных айтемов. Список нужно красиво раскидать в WPF таблице.
Задача УЖЕ решена, я лишь интересуюсь аспектами.
0
|
|
|
14130 / 9350 / 1350
Регистрация: 21.01.2016
Сообщений: 35,148
|
|
| 11.06.2017, 11:03 | |
|
skilllab, что ещё за раздел? Не совсем ясно. У вас иерархия классов в таблице хранится? Речь о СУБД?
0
|
|
|
14130 / 9350 / 1350
Регистрация: 21.01.2016
Сообщений: 35,148
|
||
| 11.06.2017, 11:04 | ||
|
0
|
||
|
|
|||
| 11.06.2017, 11:06 [ТС] | |||
|
0
|
|||
|
14130 / 9350 / 1350
Регистрация: 21.01.2016
Сообщений: 35,148
|
||
| 11.06.2017, 11:07 | ||
|
0
|
||
|
|
|||
| 11.06.2017, 11:08 [ТС] | |||
|
Добавлено через 58 секунд
0
|
|||
|
14130 / 9350 / 1350
Регистрация: 21.01.2016
Сообщений: 35,148
|
||
| 11.06.2017, 11:10 | ||
|
skilllab, по-хорошему, это не должно требоваться. Интерфейс для того и есть, чтобы не знать, что за ним.
Ну а так, если совсем припрёт, то можно использовать AS\IS или свойство с признаком (второй вариант побыстрее будет, но каст всё равно будет нужен).Добавлено через 23 секунды
0
|
||
| 11.06.2017, 11:10 | |
|
Помогаю со студенческими работами здесь
20
Обобщённые интерфейсы и классы Абстрактные классы и интерфейсы
Интерфейсы и абстрактные классы
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога
SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
|
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога
Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д.
Сборка примера
Скачайте. . .
|
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net
REST сервисы временно не работают, только через Web.
Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
|