他们的方式你做的是好的。还有一些其他的事情,可以让你的生活更轻松,你也可以做到这一点。
>不要硬编码类名。如果你在5.3,使用关键字static.这样,如果你扩展类,新功能也可以实例化一个:
public static function bar($var) {
$obj = new static();
$obj->var = $var;
return $obj;
}
那么你可以在任何扩展类中使用它,而不需要覆盖任何东西。
>找出如果$ var应该通过构造函数传入,而不是在构造之后设置。如果对象依赖于它,您应该要求它。
public function __construct($var) {
$this->var = $var;
}
这样,您无法在不设置变量的情况下实例化对象。
>通过静态方法强制实现类。如果你正在做任何你需要做的事情,那么让构造函数保护或者是私有的。这样一来,有人不能绕过静态方法。
protected function __construct() {}
private function __construct() {}
我希望有帮助…
编辑:根据上面的评论,听起来像我想要实现Singleton Design Pattern.有很多信息在这里,为什么它不是一个好主意,它可能会做坏事。它也有使用。
但是还有一些其他可能对您有用的模式,具体取决于您正在做什么。
>如果您尝试使用相同的步骤创建不同的对象,则可以使用Factory Method。
>如果所有对象开始相同,然后进行定制,则可以使用Prototype Pattern。
>如果创建对象特别昂贵,可以使用Object Pool。
但有一点需要考虑的是,在PHP对象中体重非常轻。不要试图避免为这个开销创建一个新的对象。避免多次重复数据库查询或文件系统访问。但不要担心调用新的Foo(),除非foo的构造函数特别重…