PHP-工厂模式
什么是工厂模式
组装一台电脑,需要不同的零件,而工厂模式就像零件制造商一样,不同的零件不同的工厂负责或者管理着不同的零件工厂,将代码进行解耦,不需要在逻辑代码中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);
更多内容关注个人博客:lemonlyue.github.io/
本作品采用《CC 协议》,转载必须注明作者和本文链接