В базовом классе для всех моделей в нашей системе MVC я создал фабричный метод BaseCLass::getNew(), который возвращает экземпляр запрошенного дочернего класса при вызове через SomeChildClass::getNew().
Теперь ищу способ заставить программиста использовать эту фабрику. То есть, в идеале я бы хотел, чтобы любой класс создавался напрямую, например:
new SomeChildClass
создаст исключение при создании, и можно будет использовать только классы, созданные фабрикой.
Любые идеи, как это может быть достигнуто?
Наш код написан на PHP, но есть большая вероятность, что ваша идея будет ценной, даже если вы думаете на другом языке.
редактировать: я не могу сделать свой конструктор закрытым, так как конструктор фреймворка в классе, который я наследую, является общедоступным, и php не позволит мне этого.