Показать сообщение отдельно
Старый 28.05.2017, 22:14   #4  
ta_and is offline
ta_and
Участник
 
226 / 122 (5) +++++
Регистрация: 26.02.2002
Адрес: СПб
Цитата:
Сообщение от Raven Melancholic Посмотреть сообщение
при создании наследников не менять существующий код
Код в месте, откуда происходит вызов наследников все равно придется менять, так как туда нужно будет передать новый добавленный атрибут для вызова нового наследника.
Шило на мыло. Тут мы добавляем новый атрибут, тут мы добавляем новый пункт свича для создания нужного наследника.

Цитата:
Сообщение от Raven Melancholic Посмотреть сообщение
уже существующего отлаженного кода
Правильное добавление наследника никак не может повлиять на существующий код.

Цитата:
Сообщение от Raven Melancholic Посмотреть сообщение
new с параметрами в описании BP не рекомендуется уже с DAX4, то есть более 10 лет. Кстати и construct с параметрами не рекомендуется к применению с тех же пор.
Где в теории ООП написано, что конструктор должен быть без параметров?!
Совершенно не оправданное ограничение МС.
Приведите хотя бы один довод, почему в конструктор не должны передаваться параметры?

Цитата:
Сообщение от Raven Melancholic Посмотреть сообщение
..код, использующий какие-то классы из иерархии не должен делать предположение..
Я не говорю о полиморфизме.
Я говорю именно о месте, где производится инициализация объекта нового класса.
В этом месте и в этот момент должно быть однозначно известно, какой наследник будет создан. И что это будет определять - атрибут или свич - совершенно все равно. Вопрос - зачем атрибут, если можно через свич легко и просто?
За это сообщение автора поблагодарили: mazzy (2), Ace of Database (2).