php 实现工厂模式 实例

php 实现工厂模式 实例工厂模式:由工厂类根据参数来决定创建出哪一种产品类的实例工厂类是指包含了一个专门用来创建其他对象方法的类。根据传入参数进行选择返回具体类的实例。主要作用就是对象创建的封装、简化创建对象的操作。也就是调用工厂类的一个方法(传入参数)来得到需要的类<?php//定义一个抽象类abstractclassOperation{protected$numA=0;protected$numB=0;protected$result=0;.

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新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());




版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/164361.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • altium designer绘制51单片机最小系统

    altium designer绘制51单片机最小系统一、绘制51单片机原理图库新建原理图库,并ctrl+s保存起来2、画出方框,并放置引脚,如下图。注意:画出第一个引脚后,可以双击修改它的编号为1,之后再次放置引脚时,编号会自动从1开始自加。3、在方框的左右两边放置引脚注意:新拖出来的引脚,带x号的一端,为将来要与导线连接的一端,所以,这一端要朝芯片的外部。按下空格键,可以实时修改引脚的方向4、编辑引脚定义。点击右下角的SCH,打开库浏览器,双击我们刚才建立好的这个原理图库文件(默认名称为Component_1…

    2022年6月23日
    52
  • 教你实现一个天气实时查询微信小程序

    教你实现一个天气实时查询微信小程序文章目录博主绪言组件选择部署阶段组件选择组件变量安排组件布局js后端逻辑处理环节API处理环节函数处理环节结束语博主绪言天气之子app主要功能是选择地区(省,市,区或者县),然后获取当前信息,把所选择的地区信息显示在界面上,然后调用和风天气免费的API,获取当前选择地区的天气信息,并且获取天气图标,把所有获取的这些信息,美观地显示在界面上。以下是示例界面:组件选择部署阶段组件选择根据上…

    2022年5月14日
    59
  • layer弹出层详解

    layer弹出层详解前言:学习layer弹出框,之前项目是用bootstrap模态框,后来改用layer弹出框,在文章的后面,我会分享项目的一些代码(我自己写的)。layer至今仍作为layui的代表作,她的受众广泛并非偶然,而是这五年多的坚持,不断完善和维护、不断建设和提升社区服务,使得猿们纷纷自发传播,乃至于成为今天的Layui最强劲的源动力。目前,layer已成为国内最多人使用的web弹层组件,GitHub…

    2022年7月13日
    26
  • TCP-Traceroute核心代码[通俗易懂]

    TCP-Traceroute核心代码[通俗易懂]//tracer.c//Copyright(c)1999-2004//S8S8.netNetworkTech.Forum//writtenby13thFloor//Allrightsreserved.#include#include#include#includeusingnamespacestd;#include”pcap.h”#include”hea

    2022年6月20日
    30
  • uni-app USB连接真机测试[通俗易懂]

    uni-app USB连接真机测试[通俗易懂]1、连接手机到电脑,允许开发调试当现在红框的内容就说明连接上了2、制作自定义基座3、选择自定义基座4、运行

    2025年9月17日
    12
  • 用python编写猴子吃桃问题_人工智能猴子摘香蕉

    用python编写猴子吃桃问题_人工智能猴子摘香蕉Java实现人工智能实验一,猴子摘香蕉,图形化展示

    2022年9月25日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号