什麼是工廠模式
組裝一臺電腦,需要不同的零件,而工廠模式就像零件製造商一樣,不同的零件不同的工廠負責或者管理著不同的零件工廠,將程式碼進行解耦,不需要在邏輯程式碼中new不同的類,進行一個統一的管理。
工廠模式的實現
<?php
/**
* 一個運算方法的介面
* Interface Operation
*/
interface Operation
{
/**
* 兩個數的運算
* @param int $num1
* @param int $num2
* @return int
*/
public function getVal (int $num1, int $num2): int;
}
/**
* 加法
* Class Add
*/
class Add implements Operation
{
public function getVal(int $num1, int $num2): int
{
return $num1 + $num2;
}
}
/**
* 減法
* Class Sub
*/
class Sub implements Operation
{
public function getVal(int $num1, int $num2): int
{
return $num1 - $num2;
}
}
/**
* 運算工廠(工廠模式)
* Class CounterFactory
*/
class CounterFactory
{
private static $operation;// 運算
/**
* 建立一個運算
* @param string $operation
* @return Add|Sub
*/
public static function createOperation (string $operation)
{
switch ($operation) {
case '+':
self::$operation = new Add();
break;
case '-':
self::$operation = new Sub();
break;
}
return self::$operation;
}
}
$factory = CounterFactory::createOperation('+');
$res = $factory->getVal(1, 2);
var_dump($res);
本作品採用《CC 協議》,轉載必須註明作者和本文連結