大家好,又见面了,我是你们的朋友全栈君。
工厂模式:由工厂类根据参数来决定创建出哪一种产品类的实例
工厂类是指包含了一个专门用来创建其他对象方法的类。根据传入参数进行选择返回具体类的实例。主要作用就是对象创建的封装、简化创建对象的操作。也就是调用工厂类的一个方法(传入参数)来得到需要的类
<?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());
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/164361.html原文链接:https://javaforall.cn