单例模式:保证一个类只有一个实例,并且提供一个访问它的全局访问点。
应用场景:对于不需要创造多个实例的情况,比如“数据库连接”。
代码实现:
<?php
/**
* Created by PhpStorm.
* User: Leslie
* Date: 2017/6/19
* Time: 23:06
*/
class TrafficToolFactory{
public function CreateTrafficTool($name){
switch($name){
case 'Leg':
return new Leg();
break;
case 'Car';
return new Car();
break;
...
}
}
}
class Man {
protected $trafficTools;
public function __construsted(
$trafficTools){
$factory = new TrafficToolFactory();
$this->trafficTool = $factory->createTrafficTool($trafficTool);
}
public function vistTibet (){
$this->trafficTool->go();
}
}
$traf = new Traveller('Leg');
%traf->visitTibet();
这是工厂模式实现的一个简单的单例,我们添加交通工具工厂,然后我们在实例化人的这个类中指定需要的交通工具,则工厂生产相应的实例,这里的一个弊端就是,如果我们的工厂中交通工具过多,也就是我们的需求增加的时候,我们的工厂和具体的实例化对象之间的依赖会越来越多,不容易维护。