PHP之簡單工廠模式(二)

定義

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

使用場景

當要實現類實例的建立,對外隱藏建立類的細節時就能夠使用簡單工廠模式。經過簡單工廠模式,對外部來講只須要知道有個工廠類便可,而不須要知道還有其餘類。也就是說外部只須要對工廠類有依賴,從而下降耦合。this

類圖

PHP代碼示例

運算類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;
相關文章
相關標籤/搜索