Как отличить абстрактный класс от "реального"

Cellard

Новичок
потому что это противоречит всем принципам ООП.

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

Духовность™

Продвинутый новичок
Рад бы с вами согласиться, но в отсутствие аргументов — не могу. Попробуете объяснить?
Потому, что
Задача: получить всех "реальных" потомков этого класса и инстанциировать их
заведомо абсурдна. Вы пытаетесь строить какую-то дикую, немыслимую архитектуру, когда конечный класс занимается самокопанием в своей иерархии наследования. Возьми свои кишки и вынь их наружу - это примерно так и выглядит. Конечный класс - это конечный класс? который не должен лезть в кишки мамы и папы, он должен пользоваться их свойствами и методами, а не препарировать самого себя, расчленяя.
 

fixxxer

К.О.
Партнер клуба
Cellard

Приведи пожалуйста минимальный пример кода, демонстрирующий как и зачем тебе это понадобилось. А то так можно вечно спорить о догадках которые у каждого свои
 
Сверху