php 抽象工厂模式

php 抽象工厂模式/*抽象工厂模式:用来生成一组相关或相互依赖的对象。抽象工厂模式与工厂方法模式的区别:抽象工厂模式是工厂方法模式的升级版本,他用来创建一组相关或者相互依赖的对象。他与工厂方法模式的区别就在于,工厂方法模式针对的是一个产品等级结构;而抽象工厂模式则是针对的多个产品等级结构。在编程中,通常一个产品结构,表现为一个接口或者抽象类,也就是说,工厂方法模式提供的所有产品都是衍生自同一个接口或抽

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

/*
抽象工厂模式:用来生成一组相关或相互依赖的对象。
抽象工厂模式与工厂方法模式的区别:
抽象工厂模式是工厂方法模式的升级版本,他用来创建一组相关或者相互依赖的对象。
他与工厂方法模式的区别就在于,工厂方法模式针对的是一个产品等级结构;
而抽象工厂模式则是针对的多个产品等级结构。
在编程中,通常一个产品结构,表现为一个接口或者抽象类,
也就是说,工厂方法模式提供的所有产品都是衍生自同一个接口或抽象类,
而抽象工厂模式所提供的产品则是衍生自不同的接口或抽象类。在抽象工厂模式中,
有一个产品族的概念:所谓的产品族,是指位于不同产品等级结构中功能相关联的产品组成的家族。
抽象工厂模式所提供的一系列产品就组成一个产品族;而工厂方法提供的一系列产品称为一个等级结构。
我们依然拿生产汽车的例子来说明他们之间的区别。
 */


/**
 *汽车抽象类
 *@aothor li.yonghuan
 *@version 2014.01.13
 *
 */
abstract class vehicle{

    /**
     *属性
     *@var array
     */
    public $props = array();

    /**
     *设置属性
     *@param $key 属性名
     *@param $value 属性值
     */
    public function setProperty( $key, $value ){
       $this->props[$key] = $value; 
    }

    /**
     *获取属性值
     *@param $key
     *
     */
    public function getProperty( $key ){
       return $this->props[$key]; 
    }
    
}

/**
 *公交车抽象类
 *@author li.yonghuan
 *@version 2014.01.13
 */
abstract class bus extends vehicle {
   /**
    *形体大小:两个门,三个门
    *@var string
    *
    */ 
    public $shape;
    
    /**
     *设置形体
     *@param $value
     */
    public function setShape( $value ){
        $this->shape = $value;
    }

    /**
     *抽象方法
     *@param
     */
    abstract function run();


}

/**
 *小汽车抽象类
 *@author li.yonghuan
 *@version 2014.01.13
 *
 */
abstract class car extends vehicle{
    /**
     *两厢,三厢
     *@var string
     */    
    public $room;

    /**
     *设置属性值
     *@param $key 属性名
     *@param $value 属性值
     */
    public function setRoom( $value ){
       $this->room = $value; 
    }

    /**
     *获取属性值
     *
     */
    public function getRoom(){
        return $this->room;
    }

    /**
     *抽象方法
     *
     */
    abstract function run();
}

/**
 *抽象工厂类
 *
 */
abstract class factory{
    abstract static function create( $className );
}

/**
 *小汽车工厂类
 *@author li.yonghuan
 *@version 2014.01.13
 */
class carFactory extends factory {

    /**
     *实现工厂方法
     *@param $className 类名
     */
    public static function create( $className ){
        $class = $className;
        return new $class();
    }
}

/**
 *奥迪车
 *@author li.yonghuan
 *@version 2014.01.13
 */
class audi extends car{
    
    public function run(){

        parent::setProperty('brand','audi');
        $brand = parent::getProperty('brand');
        $this->setRoom('threeRoom');
       return $this->room.' '.$brand.' car is running'; 
    }
}

$car = carFactory::create('audi');
echo $car->run();

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

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/164365.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 2022idea激活码【2021.10最新】

    (2022idea激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容https://javaforall.cn/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~3YVYA7ZZGQ-eyJsaWNlb…

  • smartctl用法心得

    smartctl用法心得SMART简介S.M.A.R.T.,全称为“Self-MonitoringAnalysisandReportingTechnology”,即“自我监测、分析及报告技术”。是一种自动的硬盘状态检测与预警系统和规范。通过在硬盘硬件内的检测指令对硬盘的硬件如磁头、盘片、马达、电路的运行情况进行监控、记录并与厂商所设定的预设安全值进行比较,若监控情况将或已超出预设安全值的安全范围,就可以通过主机的监控硬件或软件自动向用户作出警告并进行轻微的自动修复,以提前保障硬盘数据的安全。除一些出厂时间极早的硬盘外,现

  • gamma分布的分布函数_gamma分布和beta分布

    gamma分布的分布函数_gamma分布和beta分布1.Gamma函数首先我们可以看一下Gamma函数的定义:Γ(x)=∫∞0tx−1e−tdtΓ(x)=∫0∞tx−1e−tdt\Gamma(x)=\int_{0}^{\infty}t^{x-1}e^{-t}dtGamma的重要性质包括下面几条:1.递推公式:Γ(x+1)=xΓ(x)Γ(x+1)=xΓ(x)\Gamma(x+1)=x\Gamma(x)2.对于正整数n,有…

    2022年10月12日
  • Flink的sink实战之三:cassandra3

    Flink的sink实战之三:cassandra3

    2020年11月19日
  • navicat15.0.23 激活码(最新序列号破解)

    navicat15.0.23 激活码(最新序列号破解),https://javaforall.cn/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

  • TXS0104E电平转换工作原理_电平指示芯片

    TXS0104E电平转换工作原理_电平指示芯片TXB0304作为新一代自动识别方向的电平转换芯片,跟上一代同类器件TXB0104相比,具有更低的工作电压(0.9V)、更高的转换速率(1.8V-3.3V间电平转换时最高速率140MBPS)、以及更小的封装等优势。也正是因为需要在较低工作电压时也能达到较高的转换速率,芯片在某些关键参数设计上,也跟上一代产品有所不同,比如ONE-SHOT输出电路的MOS管内阻必须要设计得更小一些。这就要求在某些特殊情况下应用时(比如输出PCB走线较长),需要额外留意电路原理图的设计和PCB布线设计,以减轻输出过冲和震荡的现象

发表回复

您的电子邮箱地址不会被公开。

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