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