简单工厂模式,经过定义一个工厂类,负责完成类实例的建立,根据参数的不一样返回不一样的类实例。对外部来说,只需传入一个正常的参数就能够得到想要的对象,而没必要须要具体建立细节。建立类实例的方法一般为静态方法,因此简单工厂模式也称静态工厂方法模式。php
当要实现类实例的建立,对外隐藏建立类的细节时就能够使用简单工厂模式。经过简单工厂模式,对外部来讲只须要知道有个工厂类便可,而不须要知道还有其余类。也就是说外部只须要对工厂类有依赖,从而下降耦合。this
运算类code
abstract class Operation { public $numberA; public $numberB; abstract public function getResult(); }
加法类对象
class OperationAdd extends Operation { public function getResult() { return $this->numberA + $this->numberB; } }
减法类blog
class OperationSub extends Operation { public function getResult() { return $this->numberA - $this->numberB; } }
工厂类get
class OperationFactory { public static function createOperate($type) { $obj = null; switch ($type) { case '+': $obj = new OperationAdd(); break; case '-': $obj = new OperationSub(); break; default: # code... break; } return $obj; } }
客户端it
$opObj = OperationFactory::createOperate('+'); $opObj->numberA = 1; $opObj->numberB = 2; $res = $opObj->getResult(); echo $res;