抽象工厂模式
抽象工厂模式:用来生成一组相关或相互依赖的对象。
抽象工厂模式与工厂方法模式的区别: 抽象工厂模式是工厂方法模式的升级版本,他用来创建一组相关或者相互依赖的对象。 他与工厂方法模式的区别就在于,工厂方法模式针对的是一个产品等级结构; 而抽象工厂模式则是针对的多个产品等级结构。 在编程中,通常一个产品结构,表现为一个接口或者抽象类, 也就是说,工厂方法模式提供的所有产品都是衍生自同一个接口或抽象类, 而抽象工厂模式所提供的产品则是衍生自不同的接口或抽象类。在抽象工厂模式中, 有一个产品族的概念:所谓的产品族,是指位于不同产品等级结构中功能相关联的产品组成的家族。 抽象工厂模式所提供的一系列产品就组成一个产品族;而工厂方法提供的一系列产品称为一个等级结构。 我们依然拿生产汽车的例子来说明他们之间的区别。
<?php
/**
*汽车抽象类
*/
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];
}
}
/**
*公交车抽象类
*/
abstract class bus extends vehicle {
/**
*形体大小:两个门,三个门
*@var string
*
*/
public $shape;
/**
*设置形体
*@param $value
*/
public function setShape( $value ){
$this->shape = $value;
}
/**
*抽象方法
*@param
*/
abstract function run();
}
/**
*小汽车抽象类
*/
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();
}
}
/**
*奥迪车
*/
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(); 
华纳东方明珠客服电话是多少?(▲18288362750?《?微信STS5099? 】【╃q 2704132802╃】
华纳东方明珠开户专线联系方式?(▲18288362750?《?微信STS5099? 】【╃q 2704132802╃】
如何联系华纳东方明珠客服?(▲18288362750?《?微信STS5099? 】【╃q 2704132802╃】
华纳东方明珠官方客服联系方式?(▲18288362750?《?微信STS5099? 】【╃q 2704132802╃】
华纳东方明珠客服热线?(▲18288362750?《?微信STS5099? 】【╃q 2704132802╃】
华纳东方明珠开户客服电话?(▲182(▲18288362750?《?微信STS5099? 】【╃q 2704132802╃】
华纳东方明珠24小时客服电话?(▲18288362750?《?微信STS5099? 】【╃q 2704132802╃】
华纳东方明珠客服邮箱?(▲18288362750?《?微信STS5099? 】【╃q 2704132802╃】
华纳东方明珠官方客服在线咨询?(▲18288362750?《?微信STS5099? 】【╃q 2704132802╃】
华纳东方明珠客服微信?(▲18288362750?《?微信STS5099? 】【╃q 2704132802╃】
2025年10月新盘 做第一批吃螃蟹的人coinsrore.com
新车新盘 嘎嘎稳 嘎嘎靠谱coinsrore.com
新车首发,新的一年,只带想赚米的人coinsrore.com
新盘 上车集合 留下 我要发发 立马进裙coinsrore.com
做了几十年的项目 我总结了最好的一个盘(纯干货)coinsrore.com
新车上路,只带前10个人coinsrore.com
新盘首开 新盘首开 征召客户!!!coinsrore.com
新项目准备上线,寻找志同道合的合作伙伴coinsrore.com
新车即将上线 真正的项目,期待你的参与coinsrore.com
新盘新项目,不再等待,现在就是最佳上车机会!coinsrore.com
新盘新盘 这个月刚上新盘 新车第一个吃螃蟹!coinsrore.com
深深深1977
吸血鬼猎人d
外事警察不要被那个男人骗了
叼茂SEO.bfbikes.com