php 抽象工厂模式
来源:互联网 发布:免费香港电视直播软件 编辑:程序博客网 时间:2024/06/08 02:07
/*抽象工厂模式:用来生成一组相关或相互依赖的对象。抽象工厂模式与工厂方法模式的区别:抽象工厂模式是工厂方法模式的升级版本,他用来创建一组相关或者相互依赖的对象。他与工厂方法模式的区别就在于,工厂方法模式针对的是一个产品等级结构;而抽象工厂模式则是针对的多个产品等级结构。在编程中,通常一个产品结构,表现为一个接口或者抽象类,也就是说,工厂方法模式提供的所有产品都是衍生自同一个接口或抽象类,而抽象工厂模式所提供的产品则是衍生自不同的接口或抽象类。在抽象工厂模式中,有一个产品族的概念:所谓的产品族,是指位于不同产品等级结构中功能相关联的产品组成的家族。抽象工厂模式所提供的一系列产品就组成一个产品族;而工厂方法提供的一系列产品称为一个等级结构。我们依然拿生产汽车的例子来说明他们之间的区别。 *//** *汽车抽象类 *@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();
0 0
- php 抽象工厂模式
- PHP抽象工厂模式
- PHP 抽象工厂模式
- php抽象工厂模式
- php抽象工厂模式
- PHP工厂模式和抽象工厂模式
- php实现抽象工厂模式
- php之工厂模式和抽象工厂
- 【设计模式】之抽象工厂模式-PHP
- php设计模式 抽象工厂模式
- 初次接触php抽象工厂模式(Elgg)
- PHP设计模式——抽象工厂
- php,java实现抽象工厂模式
- PHP实现抽象工厂设计模式
- php设计模式之抽象工厂
- php 设计模式(抽象工厂)
- 工厂模式 -- 抽象工厂
- 工厂模式-抽象工厂
- hdoj Largest prime factor
- 了解社会工程学进攻思路
- 反光板的非官方的和符合的
- 10 个 lsof 命令行的使用示例
- Wireshark抓包工具使用教程以及常用抓包规则
- php 抽象工厂模式
- oracle中的大对象BLOB,CLOB,BFILE
- .net获取系统当前时间
- 黑马程序员-----java1.5新特性
- Android开源项目 5篇
- 圣经故事第二集
- 第一周(项目一)——用枚举表示对称方式。
- [Objective-C]OC中的Dealloc方法详解
- 理性与直觉