deepslam
Новичок
Всем привет!
Реализовывая функционал в очередном проекте решил применить шаблон Декоратор и столкнулся с проблемой.
Суть ее в том, что я хотел динамически добавлять 1 одному (постоянному) объекту свойства.
Реализовал это с помощью шаблона Декоратор по схеме, описанной в книге Шаблоны проектирования и получилось что то вроде:
На выходе же получился совершенно новый объект, у которого всегда сохраняется только последнее свойство.
Т.е. выходит, что Декоратор не подходит в данном случае?
Я немного исправил код и получил нечто вроде:
Т.е. декораторы в своем абстрактном методое decorate изменяют мой объект.
Корректно ли так применять этот шаблон?
Каким образом Вы меняете свойства у объектов динамически? Именно у объектов, потому как если метод что то возвращает, а не изменяет свойства переданного ему объекта, то все прекрасно работает.
Реализовывая функционал в очередном проекте решил применить шаблон Декоратор и столкнулся с проблемой.
Суть ее в том, что я хотел динамически добавлять 1 одному (постоянному) объекту свойства.
Реализовал это с помощью шаблона Декоратор по схеме, описанной в книге Шаблоны проектирования и получилось что то вроде:
PHP:
$obj = new Object();
$obj = new ObjectDecorator($obj);
$obj = new ObjectDecorator2($obj);
Т.е. выходит, что Декоратор не подходит в данном случае?
Я немного исправил код и получил нечто вроде:
PHP:
$obj = new Object()
new ObjectDecorator($obj);
new ObjectDecorator2($obj);
Корректно ли так применять этот шаблон?
Каким образом Вы меняете свойства у объектов динамически? Именно у объектов, потому как если метод что то возвращает, а не изменяет свойства переданного ему объекта, то все прекрасно работает.