|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
05.09.2019, 12:48 | #1 |
Пользователь
Регистрация: 20.12.2008
Сообщений: 22
|
Наследование и интерфейс
Уважаемые специалисты,
мой вопрос посвящен простому наследованию и изложен в скрине. Главным образом вопрос касается того участка где есть ветвления, - такой подход считается плохим стилем. Другое дело, что можно базовый класс заменить на интерфейс и, разумеется, в классах реализующих интерфейс перепрописать(реализовать) свойства интерфейса. Но тогда другое неудобство, - при изменении начинки интерфейса нужно каждый раз изменять классы, которые интерфейс реализуют. Очень часто, в разной литературе встречаю наследование и реализацию интерфейсов как альтернативные понятия или вообще как синоним, - но до сих пор для меня это разные вещи... спасибо ) |
05.09.2019, 13:00 | #2 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Опять животных мучают.
зачем на скрине излагать? Да и код надо не скрином выкладывать, тут не вк http://www.programmersforum.ru/showp...23&postcount=3 вместо GetType есть is. надо не карго культу следовать, а разбираться когда и почему считается. Тут слишком абстрактный пример и сложно что-то советовать. Вполне бывают ситуации когда подобные проверки это норм (например, во всяких AST при генерации вывода), но тут непонятно что вы делать хотите и зачем понадобился не базовый класс/интерфейс.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
05.09.2019, 13:46 | #3 |
Дружите с Linq ;)
Форумчанин
Регистрация: 15.10.2008
Сообщений: 822
|
Что требуется сделать? Определить операцию для Animal, но со своей реализацией для каждого класса? Тогда используй паттерн Visitor.
Если надо выделить что-то общее, выделяй интерфейсы, не привязывайся к конкретной реализации. Не надо делать интерфейсы слишком большими. Чаще используй композицию. Еще из общего, можно посоветовать не смешивать поведение и данные.
Не давай организму поблажки, каждый день тренируй его в шашки..
|
05.09.2019, 14:11 | #4 | |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,526
|
Цитата:
если нужна модификация вводится(добавляется) НОВЫЙ интерфейс. и переделывать (добавлять реализацию нового) придется только там где пожелаем.
программа — запись алгоритма на языке понятном транслятору
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
C# наследование, деллегаты, интерфейс | Litl_Joy | Помощь студентам | 0 | 12.05.2015 16:44 |
С#.НАследование. | Elimay25 | C# (си шарп) | 3 | 18.04.2012 21:10 |
Наследование | Funny Студенточка | Общие вопросы C/C++ | 1 | 08.04.2012 21:46 |
наследование | nika@ | C# (си шарп) | 0 | 18.03.2012 15:42 |
разработать интерфейс для дисков - интерфейс програмный | Notformal | Помощь студентам | 0 | 01.11.2011 22:52 |