Re[6]: Присвоение свойств и вызов виртуального метода из кон
От: fddima  
Дата: 15.11.16 15:20
Оценка:
Здравствуйте, sharez, Вы писали:

S>В общем, всё это делается, да, но не кажется ли, что мы излишне усложнили архитектуру просто из-за надуманного ограничения на задание полей класса до вызова суперконструтора?

Не кажется.
Вне зависимости от возможности делать виртуальный вызов в конструкторе — контрол (кнопка) будет:
1. Иметь состояние attached/detached (to DOM). Особенно в тех фреймворках кто может аттачится на уже существующий элемент и/или достраивать дом с плэйсхолдеров.
2. Свойства на подобии title и color — они или бесполезные поля, или же имеют аксессоры и ими можно пользоваться как до так и после аттача с отражением изменений в DOM. Опционально — вычитка значений из DOM.
3. События — аналогичны (2) — подписываемся/отписываемся в любое время, но в DOM они должны подписываться/отписываться железобетонно. Иначе ликать будет. (Хотя современные браузеры если ещё нет, то скоро и с этим справятся).
Я вообще не вижу зачем тут метод fill особенно в конструкторе.
Конструктор должен создавать объект в консистентном состоянии и только. Таким образом все параметры необходимые для конструкции объекта — необходимо передавать через параметры конструктора (парадокс?).
Для того что бы не вызывать тонну пропертей после конструкции объекта — можно соорудить ControlParams, ButtonParams или вообще безликий/динамический объект-холдер с настройками при инициализации. Заодно это могло бы упростить создание контрола фабрикой по уже готовому DOM с параметрами (или частью) которые лежат в атрибутах элемента.
Собственно нечто подобное я "изобретал" для себя, достаточно неплохо имхо организовано в google closure tools (library).
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.