簡單工廠模式,經過定義一個工廠類,負責完成類實例的建立,根據參數的不一樣返回不一樣的類實例。對外部來說,只需傳入一個正常的參數就能夠得到想要的對象,而沒必要須要具體建立細節。建立類實例的方法一般爲靜態方法,因此簡單工廠模式也稱靜態工廠方法模式。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;