我正在研究一个简单的抽象数据库类。在我使用这个类时,我想让某个实例成为一个单例。我在想有抽象类,它是不一个单身的,然后将其延伸到另一个抽象类,是单身。这可能吗?推荐的?抽象类在PHP中扩展抽象类?
编辑:我想有两个几乎相同的摘要,除了一个是单身。所以唯一的区别是一个人会拥有另一个人的所有功能,但是会有其他的特性和方法,使其表现得像一个单身人士。
我想有这一个基类的代码库,以便我做出改变,我没有让两个文件同步。
我正在研究一个简单的抽象数据库类。在我使用这个类时,我想让某个实例成为一个单例。我在想有抽象类,它是不一个单身的,然后将其延伸到另一个抽象类,是单身。这可能吗?推荐的?抽象类在PHP中扩展抽象类?
编辑:我想有两个几乎相同的摘要,除了一个是单身。所以唯一的区别是一个人会拥有另一个人的所有功能,但是会有其他的特性和方法,使其表现得像一个单身人士。
我想有这一个基类的代码库,以便我做出改变,我没有让两个文件同步。
在我做事情的方式,我相信有一个抽象的单都没用。这是因为,你想成为一个单独什么
1)是您实例的应用程序中使用它是否会成为一个库,模型,控制器或视图,而不是抽象的最后一节课。
2)添加单方法容易,并且可以在8行写入。见下文。
protected static $_instance;
public static function getInstance()
{
if (!isset(self::$_instance)) {
self::$_instance = new self();
}
self::$_instance;
}
3)PHP 5.3以下版本不支持后期静态绑定。这将导致实例化抽象类而不是继承它的最终类,并且不会像预期的那样起作用,正如Gordon和nuqqsa已经提到的那样。所以,为了向后兼容,最好避免它。
Singleton模式的实施必须满足两个要求:
只要提供了它,变化就是多重的。如果这是您需要的,将类抽象从另一个抽象扩展出来是没有问题的。但是,正如@Gordon说,要知道,重写静态方法/属性导致PHP < 5.3奇特的行为。