Php工厂模式
Php工厂模式
Alexphp工厂模式
- 工厂模式: 就是负责生成其他对象的类或方法。
- 代码 : 实现交通工具接口的类
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28interface Vehicle
{
public function drive();
}
class Car implements Vehicle
{
public function drive()
{
echo '汽车靠四个轮子滚动行走。';
}
}
class Ship implements Vehicle
{
public function drive()
{
echo '轮船靠螺旋桨划水前进。';
}
}
class Aircraft implements Vehicle
{
public function drive()
{
echo '飞机靠螺旋桨和机翼的升力飞行。';
}
} - 代码: 创建工厂类,转码用作类的创建
1
2
3
4
5
6
7
8
9
10
11class VehicleFactory
{
public static function build($className = null)
{
$className = ucfirst($className);
if ($className && class_exists($className)) {
return new $className();
}
return null;
}
} - 使用:
1
2
3VehicleFactory::build('Car')->drive();
VehicleFactory::build('Ship')->drive();
VehicleFactory::build('Aircraft')->drive(); - 工厂模式实际就是建立一个统一的类实例化接口,统一调用,统一控制。
- 工厂模式是PHP项目开发中,最常用的设计模式,一般会配合单例模式一起使用,来加载php类库中的类。
- 例二
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20//工厂模式 提供获取某个对象实例的一个接口,同时使调用代码避免确定实例化基类的步骤
//字符串类
class String {
public function write() {}
}
//Json类
class Json {
public function getJsonData() {}
}
//xml类
class Xml {
public function buildXml() {}
}
//工厂类
class Factory {
public static function create($class) {
return new $class;
}
}
Factory::create("Json"); //获取Json对象