|
![]() |
#1 |
Роман Долгополов (RDOL)
|
Цитата:
Насколько допустимо пользоваться отражением и "особенностями" его работы решайте сами |
|
|
За это сообщение автора поблагодарили: Raven Melancholic (10). |
![]() |
#2 |
Участник
|
Цитата:
Сообщение от db
![]() сейчас не проверял, но как мне помнится DictClass.makeObject() на модификаторы доступа не смотрит. Т.е. сделать protected new () у NodeContract, а создавать их через фабрику в NodeCreator используя DictClass.makeObject()
Насколько допустимо пользоваться отражением и "особенностями" его работы решайте сами |
|
|
За это сообщение автора поблагодарили: Raven Melancholic (2). |
![]() |
#3 |
Участник
|
Цитата:
Так что использовать отражение вполне можно, но как-то не совсем "душа лежит" к этому. Хотелось бы декларативно это сделать ,чтобы впоследствии те ,кто будет использовать классы сразу видели, что "вот оно как". |
|
![]() |
#4 |
Участник
|
Ну new я, как правило, и так делаю protected. Более того, если для создания класса нужны (или по логике работы и предполагаемого дальнейшего расширения класса они могут понадобится) параметры, то и construct я так же защищаю, а предоставляю некие методы фабрик newЧегоТоТам.
Вообще, для решения моей задачи использование DictClass для создания объекта класса контракта в создателе идея неплохая. Только тогда побоку идут перекрестные ссылки, и BP начнет ругаться, что класс не используется ни прямо ни косвенно. Обойти и то и другое можно (например, в нужном создателе использовать в каком-то месте classStr(НужныйКонтракт)). В общем, спасибо за идею, если не найдется других возможностей, то такой подход неплохой кандидат. |
|