Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Общие вопросы по программированию, компьютерный форум
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.09.2019, 12:48   #1
Sasha811
Пользователь
 
Регистрация: 20.12.2008
Сообщений: 22
По умолчанию Наследование и интерфейс

Уважаемые специалисты,
мой вопрос посвящен простому наследованию и изложен в скрине. Главным образом вопрос касается того участка где есть ветвления, - такой подход считается плохим стилем. Другое дело, что можно базовый класс заменить на интерфейс и, разумеется, в классах реализующих интерфейс перепрописать(реализовать) свойства интерфейса. Но тогда другое неудобство, - при изменении начинки интерфейса нужно каждый раз изменять классы, которые интерфейс реализуют. Очень часто, в разной литературе встречаю наследование и реализацию интерфейсов как альтернативные понятия или вообще как синоним, - но до сих пор для меня
это разные вещи...

спасибо )
Изображения
Тип файла: png obj.png (58.5 Кб, 104 просмотров)
Sasha811 вне форума Ответить с цитированием
Старый 05.09.2019, 13:00   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Опять животных мучают.


Цитата:
Сообщение от Sasha811 Посмотреть сообщение
изложен в скрине
зачем на скрине излагать?
Да и код надо не скрином выкладывать, тут не вк http://www.programmersforum.ru/showp...23&postcount=3

вместо GetType есть is.


Цитата:
Сообщение от Sasha811 Посмотреть сообщение
такой подход считается плохим стилем
надо не карго культу следовать, а разбираться когда и почему считается.

Тут слишком абстрактный пример и сложно что-то советовать.

Вполне бывают ситуации когда подобные проверки это норм (например, во всяких AST при генерации вывода), но тут непонятно что вы делать хотите и зачем понадобился не базовый класс/интерфейс.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 05.09.2019, 13:46   #3
Скарам
Дружите с Linq ;)
Форумчанин
 
Аватар для Скарам
 
Регистрация: 15.10.2008
Сообщений: 822
По умолчанию

Что требуется сделать? Определить операцию для Animal, но со своей реализацией для каждого класса? Тогда используй паттерн Visitor.
Если надо выделить что-то общее, выделяй интерфейсы, не привязывайся к конкретной реализации. Не надо делать интерфейсы слишком большими. Чаще используй композицию.
Еще из общего, можно посоветовать не смешивать поведение и данные.
Не давай организму поблажки, каждый день тренируй его в шашки..
Скарам вне форума Ответить с цитированием
Старый 05.09.2019, 14:11   #4
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

Цитата:
при изменении начинки интерфейса нужно каждый раз изменять классы, которые интерфейс реализуют.
первое правило "промышленных"(имеющих множество реализаций за которыми почти невозможно уследить) интерфейсов они НЕ модифицируются.

если нужна модификация вводится(добавляется) НОВЫЙ интерфейс.
и переделывать (добавлять реализацию нового) придется только там где пожелаем.
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
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