大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
工厂模式:由工厂类根据参数来决定创建出哪一种产品类的实例
工厂类是指包含了一个专门用来创建其他对象方法的类。根据传入参数进行选择返回具体类的实例。主要作用就是对象创建的封装、简化创建对象的操作。也就是调用工厂类的一个方法(传入参数)来得到需要的类
<?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());
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/164361.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...