Показать сообщение отдельно
Старый 27.06.2018, 14:54
Appleman вне форума Посмотреть профиль Отправить личное сообщение для Appleman Найти все сообщения от Appleman
  № 10  
Ответить с цитированием
Appleman
 
Аватар для Appleman

Регистрация: Dec 2014
Адрес: Санкт-Петербург
Сообщений: 479
RedHead90, спасибо за объяснения и примеры.

Цитата:
класс Character - это узел;
классы CharacterNPC и CharacterPlayer его наследники, но их различия всего в одной строке (ссылке на частные компоненты);
классы NPC и Player - компоненты, не имеющие общих корней и описывающие все те данные, что присущи лишь одной из сущностей.
Интересный подход. Но в случае если число свойств, различных для Player и NPC, невелико, то проблему раздутого класса не решает, а геморроя добавляет.

Я сам изначально вводил приватные переменные в классы-наследники (т.е. делал всё то же, но не в форме отдельного класса, а просто свойствами в имеющийся), а потом надоело мучиться и ловить исключения при обращении за ними в суперкласс Character. В итоге объявил всё в супере, а дальше уже разруливаю по ситуации переопределяемыми в наследниках сеттерами/геттерами.
__________________
Не сломано - не чини!