Всем привет! Имеется класс со статическим методом-фермой, который создаёт экземпляр того или иного класса после проверки данных на входе (дабы исключить ошибки в том числе). Как сделать так, чтобы объекты классов могли создаваться только через этот метод? Это нужно для того, чтобы ребята не обходили ограничения, заложенные в методе-ферме. У меня вариант пока только один - метод-ферму сделать суперклассом, а все конструкторы наследников - protected. Может есть более человечный способ? Кто в курсе?
Можно сделать класс абстрактным, тогда его нельзя будет вызвать. Можно только унаследовать: abstract class ClassName {} А от этого уже можно плясать как угодно
Так же можно сделать создание объекта статическим методом: public static function methodName() {}
Имеется класс со статическим методом-фермой, который создаёт экземпляр того или иного класса после проверки данных на входе (дабы исключить ошибки в том числе).
Как сделать так, чтобы объекты классов могли создаваться только через этот метод?
Это нужно для того, чтобы ребята не обходили ограничения, заложенные в методе-ферме.
У меня вариант пока только один - метод-ферму сделать суперклассом, а все конструкторы наследников - protected.
Может есть более человечный способ? Кто в курсе?