![](/s/cache/e0/18/e018a4d031698707525444494f1a79e7.png)
0
Паттерны. Фабричный метод на PHP. Нарушение инкапсуляции
В примерах фабричного метода в абстрактном классе Создателя объявляется абстрактный публичный метод, но его использование должно быть доступно только внутри этого же класса, либо его потомков, т.е. он должен быть protected.
Иначе таким образом нарушается инкапсуляция.
Также затрудняется чтение этого примера, т.к. непонятно зачем этот метод публичный.
Иначе таким образом нарушается инкапсуляция.
Также затрудняется чтение этого примера, т.к. непонятно зачем этот метод публичный.
Service d'assistance aux clients par UserEcho
Если он не будет публичным то клиент не сможет его использовать.
$creater = new ConcreteCreaterA() или ConcreteCreaterB()
Клиент в своем коде должен иметь возможность вызывать $creater->createProduct() иначе смысл паттерна теряется.