今天刚学习了php的设计模式,一个是工厂模式而另一个是单例模式,工厂模式设计出来就是为了一种方便创建对象而做出来的。还有一个是单例模式,单例模式的设计有些比较难以理解,我们必须一步一步的分析:单例类的情况必须去创建类的实例,而且必须只有一个,首先没有对象实例的情况就是将它的构造器私有化,代码是这样子的:private function __construct(){} 。第二步就是写一个方法,去只生成一个对象就返回而有的话就直接返回。这个我把整个的代码贴下:
class A{};
class B{};
class WorkStation { /* 工厂类 */
static function GetObject($className)
{
$obj = new $className();
return $obj;
}
}
$o1 = WorkStation::GetObject("A");
$o2 = WorkStation::GetObject("B");
var_dump($o1); var_dump($o2);
echo "<hr>";
class Single { /* 单例模式只允许创建类的对象 */
private function __construct()
{
}
static $instance = null;
static function GetObject($className)
{
if (!isset(self::$instance)) /* 如果生产的实例未空 */
{
$obj = new $className();
self::$instance = $obj;
return self::$instance;
}else{
return self::$instance;
}
}
}
$singleA = Single::GetObject("A");
$singleB = Single::GetObject("A");
var_dump($singleA);var_dump($singleB);