Грамотное юзание ООП - что бы не было копипаста кода. Для этого и используются указанные тобой инструменты.</quote>
Я смотрю, что по данному приближению модели к рассмотрению, недочеты выявить не получается. За исключением наличия объектов и связей - ничего не просматривается.
С "елкой" - та же ситуация.
Если же взять большее приближение (пример на скриншоте),
то видно, видно, что с инкапсуляцией - хреново. Да, не у всех методов неободимость быть пабликами, но в приват они не занесены - плохо.
Полиморфизм - хз как его на схеме увидеть. Встречал упоминание, что если в коде присутствуют "swith... case" - значит полиморфизм не задействован.
Применительно к моему коду - у меня кейсы на ID элементов в обработчике задействуются сплошь и рядом. Значит с полиморфизмом тоже не гуд.
Наследование. Хм. Что по схеме видно - стрелочки одного типа. Ну и еще кружочки с крестиками - этого мало.
Что-то типа такого (картинка под спойлером) -
проектирование по схеме А задействовано, а B и C - таких связей не наблюдается. Это не есть гуд. Это свидетельствует о том, что extends и implement abstract iterface не применяется.
Может этого в данном фрагменте (проекте) и не нужно, но так ли это ???
Такой вот ход рассуждений.