一.单例模式
所有单例模式至少拥有的三要素
1.它们必须拥有一个私有构造函数
2.它们必须拥有一个类的实例的静态成员变量
3.它们拥有一个访问这个静态变量的静态方法
补充:最好置类的克隆方法为空方法体,并且私有
class Databases
{
private $_db;
static $_instance;
private function __construct
{
}
public static function getInstance()
{
if(!(self::$_instance instanceof self)){
self::$_instance= new self();
}
return self::$_intance;
}
private __clone(){}
}
二.工厂模式
工厂模式通常用来返回符合类似接口的不同类。工厂的一种常见方法就是创建多态的提供者,从而允许我们基于应用程序逻辑或者配置设置来决定应该示例化哪一个类。例如,可以使用这样的提供者来扩展一个类,而不需要重构应用程序的其他部分,从而使用新的扩展后的名称。
通常,工厂模式有一个关键的构造,即根据一般原则被命名为factory的静态方法。然而这只是一种原则。工厂方法可以任意命名。这个静态方法还可以接受任意数量的参数,并且必须返回一个对象。