- 2
- 0
- 约4.6千字
- 约 3页
- 2021-01-16 发布于安徽
- 举报
2016/11/12 抽象工厂模式 | 菜鸟教程
抽象工厂模式
抽象工厂模式 (Abstract Factory Pattern )是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创
建型模式,它提供了一种创建对象的最佳方式。
在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。
意图:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。
主要解决:主要解决接口选择的问题。
何时使用:系统的产品有多于一个的产品族,而系统只消费其中某一族的产品。
如何解决:在一个产品族里面,定义多个产品。
关键代码:在一个工厂里聚合多个同类产品。
应用实例:工作了,为了参加一些聚会,肯定有两套或多套衣服吧,比如说有商务装 (成套,一系列具体产品)、时尚装 (成套,一系列具体
产品),甚至对于一个家庭来说,可能有商务女装、商务男装、时尚女装、时尚男装,这些也都是成套的,即一系列具体产品。假设一种情况
(现实中是不存在的,要不然,没法进入共产主义了,但有利于说明抽象工厂模式),在您的家中,某一个衣柜 (具体工厂)只能存放某一种这
样的衣服 (成套,一系列具体产品),每次拿这种成套的衣服时也自然要从这个衣柜中取出了。用 OO 的思想去理解,所有的衣柜 (具体工厂)
都是衣柜类的 (抽象工厂)某一个,而每一件成套的衣服又包括具体的上衣 (某一具体产品),裤子 (某一具体产品),这些具体的上衣其实也
都是上衣 (抽象产品),具体的裤子也都是裤子 (另一个抽象产品)。
优点:当一个产品族中的多个对象被设计成一起工作时,它能保证客户端始终只使用同一个产品族中的对象。
缺点:产品族扩展非常困难,要增加一个系列的某一产品,既要在抽象的 Creator 里加代码,又要在具体的里面加代码。
使用场景: 1、QQ 换皮肤,一整套一起换。 2 、生成不同操作系统的程序。
注意事项:产品族难扩展,产品等级易扩展。
我们将创建 Shape 和 Color 接口和实现这些接口的实体类。下一步是创建抽象工厂类 A bstractF actory 。接着定义工厂类 ShapeF actory 和
ColorF actory ,这两个工厂类都是扩展了 A bstractF actory 。然后创建一个工厂创造器/ 生成器类 F actoryProducer。
A bstractF actoryPatternDemo ,我们的演示类使用 F actoryProducer 来获取 A bstractF actory 对象。它将向 A bstractF actory 传递形状信息
Shape (CIRCLE / RECTAN GLE / SQUARE ),以便获取它所需对象的类型。同时它还向 A bstractF actory 传递颜色信息 Color (RED / GREEN /
BL UE ),以便获取它所需对象的类型。
为形状创建一个接口。
/desig n-pattern/abstract-factory-pattern.html 1/3
2016/11/12 抽象工厂模式 | 菜鸟教程
Shape.j ava
publicinterfaceShape
创建实现接口的实体类。
Rectang le.j ava
publicclassRectangleimplementsShape@OverridepublicSystemprintlnInside Rectangle::draw() method.
Square.j ava
publicclassSquareimplementsShape@OverridepublicSystemprintlnInside Square::draw() method.
Circle.j ava
publicclassCircleimplementsShape@OverridepublicSystemprintlnInside Circle::draw() method.
为颜色创建一个接口。
Color.j ava
publicinterfaceColor
创建实现接口的实体类。
Red.j a
您可能关注的文档
- 浙江省医学遗传学重点实验室研究生科研准入考试2015.10(1).doc
- 中文汇总2017年龙舟秩序册170601.doc
- 1-1职业卫生 (打印).pdf
- 1-2职业卫生与职业医学方法(打印) [兼容模式].pdf
- 2夏昭林 职业中毒概论2018.pdf
- 3工作场所心理健康.pdf
- 3工作生命质量.pdf
- 05突发性环境污染事件-2018-蔡婧.pdf
- 09城乡规18-郑唯韡.pdf
- 20-2013IVD峰会-奥普-王钧.pdf
- 25-26学年政治(部编版)选择性必修第二册课件:第1单元 周清1 民法中的人身权及财产权.pptx
- 25-26学年政治(部编版)选择性必修第二册课件:1.4.1 权利保障 于法有据.pptx
- 2025北京丰台区高二(上)期中地理(A卷)含答案.docx
- 2025北京三帆中学初三(上)开学考英语试题含答案.docx
- 2025北京一零一中初三9月月考语文试题含答案.docx
- 2025北京海淀区初三(上)期中道法试题含答案.docx
- 2025北京丰台区高一(上)期中政治(A卷)含答案.docx
- 25-26学年政治统编版必修4课件:3.3 唯物辩证法的实质与核心.pptx
- 25-26学年政治统编版必修4课件:7.2 正确认识中华传统文化.pptx
- 湖北省部分高中2026届高三上学期二模联考 历史试卷.docx
最近下载
- 部编版道德与法治一年级下册第8课《大家来合作》精美课件.pptx VIP
- 银行国际业务基础知识.pdf VIP
- 《恒压频比控制下交流异步电机调速系统仿真》.docx VIP
- 矿山生态保护修复验收规范.pdf VIP
- 浙江省杭州市西湖区2024-2025学年九年级上学期数学期末试卷(含答案).docx VIP
- 山东省济南市历城区2023-2024学年五年级上学期期末数学试卷(含答案).docx VIP
- 城市景观规划设计外文文献翻译 .pdf VIP
- PEP人教版小学英语三年级上册期末测试卷(一)(答案+听力材料).doc VIP
- 小升初英语试卷及答案.pdf VIP
- 安全知识 培训.docx VIP
原创力文档

文档评论(0)