大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说php 实现工厂模式 实例[通俗易懂],希望能够帮助大家进步!!!
工厂模式:由工厂类根据参数来决定创建出哪一种产品类的实例
工厂类是指包含了一个专门用来创建其他对象方法的类。根据传入参数进行选择返回具体类的实例。主要作用就是对象创建的封装、简化创建对象的操作。也就是调用工厂类的一个方法(传入参数)来得到需要的类
<?php
//定义一个抽象类
abstract class Operation
{
protected $numA = 0;
protected $numB = 0;
protected $result = 0;
//构造方法获取到传入的$a 和 $b
public function __construct($a, $b)
{
$this->numA = $a;
$this->numB = $b;
}
//抽象方法所有子类必须实现该方法
protected abstract function getResult();
}
//加法运算
class OperationAdd extends Operation
{
//实现父类的getResult方法
public function getResult()
{
$this->result = $this->numA + $this->numB;
return $this->result;
}
}
//减法运算
class OperationSub extends Operation
{
//实现父类的getResult方法
public function getResult()
{
$this->result = $this->numA - $this->numB;
return $this->result;
}
}
//工厂类
class OperationFactory
{
//创建保存实例的静态成员变量
private static $obj;
//创建实例的静态方法
public static function CreateOperation($type, $a, $b)
{
switch ($type) {
case "+":
self::$obj = new OperationAdd($a, $b);
break;
case "-":
self::$obj = new OperationSub($a, $b);
break;
}
return self::$obj;
}
}
$obj = OperationFactory::CreateOperation('+', 10, 10);
var_dump($obj->getResult());
只听到从架构师办公室传来架构君的声音:
恨被榆钱,买断两眉长斗。有谁来对上联或下联?