在我们 MVC 系统中所有模型的基类中,我创建了一个工厂方法 BaseCLass::getNew(),它在通过 SomeChildClass::getNew() 调用时返回所请求子类的实例。
现在,我正在寻找一种方法来强制程序员使用这个工厂。即,我通常希望直接创建任何类,如下所示:
new SomeChildClass
创建时会抛出异常,只有工厂创建的类才能使用。
任何想法如何实现?
我们的代码是用 PHP 编写的,但即使您使用不同的语言思考,您的想法也很有可能是有价值的。
编辑:我不能将我的构造函数设为私有,因为我继承的类中的框架构造函数是公共的,而 php 不允许我这样做。