设计模式4.1-工厂模式之简单工厂
2018-01-22 10:48
155 查看
<?php /* * * * * 简单工厂模式:创建对象的逻辑抽取出来,放到工厂中实现 * * 在本示例中:客户类Test获取对象实例door的代码放到工厂类Factory中实现。 * 带来的好处是,在我们需要添加door的类型时,不必更改Test类的代码,只需要在factory中添加即可。 * */ //对象类 abstract class Door { abstract public function open(); abstract public function close(); } class WhiteDoor extends Door { public function open() { echo "White Door Open!<br>\n"; } public function close() { echo "White Door Close!<br>\n"; } } class BlackDoor extends Door { public function open() { echo "Black Door Open!<br>\n"; } public function close() { echo "Black Door Close!<br>\n"; } } class NilDoor extends Door { public function open() {} public function close() {} } class SimpleFactory { public function create($config = []) { $object = null; if (is_array($config) && !empty($config)) { $className = array_shift($config).'Door'; $object = new $className($config); } else { $object = new NilDoor(); } return $object; } } class Test { public function run() { $factory = new SimpleFactory(); $doorOne = $factory->create(['Black']); $doorTwo = $factory->create(['White']); $doorOne->open(); $doorOne->close(); $doorTwo->open(); $doorTwo->close(); } } $test = new Test(); $test->run();
相关文章推荐
- 【重读设计模式】简单工厂模式
- 设计模式:简单工厂、工厂方法、抽象工厂之小结与区别
- 简单工厂设计模式
- 设计模式一:简单工厂模式
- 设计模式——简单工厂
- 设计模式之简单工厂.
- java设计模式之简单工厂模式
- 设计模式_简单工厂模式
- 设计模式-2-简单工厂
- C#设计模式--简单工厂模式
- 设计模式-创建型模式:简单工厂SimpleFactory
- 简单工厂设计模式(OperationFactory)
- 设计模式之Factory(简单工厂和工厂方法)
- 设计模式---简单工厂模式
- iOS常用设计模式——简单工厂设计模式
- 设计模式中简单工厂模式和策略模式的比较(转)
- 接口和简单工厂设计模式
- 设计模式: 简单工厂模式
- 设计模式:简单工厂、工厂方法、抽象工厂之小结与区别
- 设计模式学习之简单工厂(Simple Factory,创建型模式)(1)