工厂模式定义:定义一个用于创建对象的接口,让子类决定将哪一个类实例化。严格来说简单工厂模式并非属于设计模式,只能是属于一个开发过程中的良好习惯。
<?php /** * 定义工厂接口 */ interface FactoryInterface{ //定义一个工具方法 public function tool(); } /** * 工厂抽象父类继承工厂接口 */ abstract class Factory implements FactoryInterface{ abstract public function tool(); public function tool2(){ echo "我是公共方法".PHP_EOL; } } /** * 工厂类1 */ class Factory1 extends Factory{ public function tool(){ echo "我是工厂1工具方法".PHP_EOL; } } /** * 工厂类2 */ class Factory2 extends Factory{ public function tool(){ echo "我是工厂2工具方法".PHP_EOL; } } /** * 工厂创建类 */ class FactoryCreate{ //工厂对象 private $_factoryObj; //工厂类选择 public function __construct($flage){ if($flage == 1){ $this->_factoryObj = new Factory1; } if($flage == 2){ $this->_factoryObj = new Factory2; } } public function getTool(){ $this->_factoryObj->tool(); } } $obj1 = new FactoryCreate(1); $obj2 = new FactoryCreate(2); $obj1 -> getTool(); $obj2 -> getTool();