网站大量收购独家精品文档,联系QQ:2885784924

设计模式 抽象工厂模式.pdf

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
设计模式 抽象工厂模式

设计模式 抽象⼯⼚模式 抽象⼯⼚模式 定义:为创建⼀组相关或相互依赖的对象提供⼀个接⼜,⽽且⽆需指定他们的具体 类 类型:创建类模式 类图: 抽象⼯⼚模式与⼯⼚⽅法模式的区别 抽象⼯⼚模式是⼯⼚⽅法模式的升级版本,他⽤来创建⼀组相关或者相互依赖的对 象 他与⼯⼚⽅法模式的区别就在于,⼯⼚⽅法模式针对的是⼀个产品等级结构;⽽ 抽象⼯⼚模式则是针对的多个产品等级结构 在编程中,通常⼀个产品结构,表现为 ⼀个接⼜或者抽象类,也就是说,⼯⼚⽅法模式提供的所有产品都是衍⽣⾃同⼀个接 ⼜或抽象类,⽽抽象⼯⼚模式所提供的产品则是衍⽣⾃不同的接⼜或抽象类 在抽象⼯⼚模式中,有⼀个产品族的概念:所谓的产品族,是指位于不同产品等级结 构 功能相关联的产品组成的家族 抽象⼯⼚模式所提供的⼀系列产品就组成⼀个产 品族;⽽⼯⼚⽅法提供的⼀系列产品称为⼀个等级结构 我们依然拿⽣产汽车的例⼦ 来说明他们之间的区别 在上⾯的类图中,两厢车和三厢车称为两个不同的等级结构;⽽2.0排量车和2.4排量 车则称为两个不同的产品族 再具体⼀点,2.0排量两厢车和2.4排量两厢车属于同⼀ 个等级结构,2.0排量三厢车和2.4排量三厢车属于另⼀个等级结构;⽽2.0排量两厢车 和2.0排量三厢车属于同⼀个产品族,2.4排量两厢车和2.4排量三厢车属于另⼀个产品 族 明⽩了等级结构和产品族的概念,就理解⼯⼚⽅法模式和抽象⼯⼚模式的区别了,如 果⼯⼚的产品全部属于同⼀个等级结构,则属于⼯⼚⽅法模式;如果⼯⼚的产品来⾃ 多个等级结构,则属于抽象⼯⼚模式 在本例中,如果⼀个⼯⼚模式提供2.0排量两厢 车和2.4排量两厢车,那么他属于⼯⼚⽅法模式;如果⼀个⼯⼚模式是提供2.4排量两 厢车和2.4排量三厢车两个产品,那么这个⼯⼚模式就是抽象⼯⼚模式,因为他提供的 产品是分属两个不同的等级结构 当然,如果⼀个⼯⼚提供全部四种车型的产品,因 为产品分属两个等级结构,他当然也属于抽象⼯⼚模式了 抽象⼯⼚模式代码 interface IProduct1 { public void show(); } interface IProduct2 { public void show(); } class Product1 implements IProduct1 { public void show() { System out println(这是1型产品); } } class Product2 implements IProduct2 { public void show() { System out println(这是2型产品); } } interface IFactory { public IProduct1 createProduct1(); public IProduct2 createProduct2(); } class Factory implements IFactory{ public IProduct1 createProduct1() { return new Product1(); } public IProduct2 createProduct2() { return new Product2(); } } public class Client { public static void main(String[] args){ IFactory factory = new Factory(); factory createProduct1() show(); factory createProduct2() show(); } } 抽象⼯⼚模式的优点 抽象⼯⼚模式除了具有⼯⼚⽅法模式的优点外,最主要的优点就是可以在类的内部对 产品族进⾏约束 所谓的产品族,⼀般或多或少的都存在⼀定的关联,抽象⼯⼚模式 就可以在类内部

文档评论(0)

hhuiws1482 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:5024214302000003

1亿VIP精品文档

相关文档