## Abstract Factory Pattern (抽象工厂模式)
### 0. 女娲的失误
肤色(工厂)+性别(对象)
### 1. What ?
Provide an interface creating families of related or dependent
without specifying their concrete classes.
为创建一组相关或者相互依赖的对象提供一个接口, 而且无需指定它们的具体类 (参考女娲造人的工厂)
**注意1** : 有N个产品族, 在抽象工厂就应该有多少个创建方法 (参见AbstractCreatorFactory)
**注意2** : 有M个产品等级就应该有M个实现工厂类, 在每个实现工厂中, 实现不同产品族的生产(参见工厂类实现类)
在场景类中, 没有任何一个方法与实现类有关系,
对于一个产品来说, 我们只要知道它的工厂方法就可以直接生产一个产品对象, 无需关心他的实现类.
### 2. Application
#### 2.1. Advantage?
1. 封装性
产品的实现不需要高层关心, 我们只需要知道工厂类是谁就能生产需要的对象.
2. 产品族内的约束为非公开状态
产品的约束在工厂内实现
#### 2.2. Defect?
1. 产品族扩展非常困难
添加一个产品, 需要改动代码太多, 不符合开闭原则
#### 2.3. Scenes to be used
一个对象族(或者一组没有任何关系的对象)都有相同的约束
如: 产生不同操作系统下的编辑器和图片处理器, 相同的约束: 系统类型
TODO code
#### 2.4. Notice
虽然产品族扩展非常困难, 但是产品等级扩展容易, 只需要添加一个工厂实现类
### 3. Best Practice
如一个应用(产品),三个平台(等级工厂类)
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
Java抽象工厂模式:解锁代码复用的新境界 在编程世界中,设计模式是一组被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。它们能够帮助我们更好地组织代码,提高代码的可重用性、可维护性和可扩展性。今天,我要为大家介绍的是Java中的抽象工厂模式,这是一种非常实用的设计模式,让我们一起来探索它的魅力吧! 内容概要 本文将从以下几个方面详细介绍Java抽象工厂模式: 抽象工厂模式的应用场景。 抽象工厂模式的实现原理。 一个简单的Java抽象工厂模式实现demo。 本文适合以下人群阅读: Java开发者:无论您是初学者还是资深开发者,都可以从本文中学习到抽象工厂模式的相关知识,提升代码设计水平。 对设计模式感兴趣的人:如果您对设计模式感兴趣,想要深入了解Java中的设计模式,那么本文将是您不可多得的好帮手。 软件工程师和架构师:作为软件工程师和架构师,掌握抽象工厂模式有助于您更好地设计系统架构,提高软件的可维护性和可扩展性。 能学到什么 通过阅读本文,您将能够:了解抽象工厂模式的基本概念和应用场景。
资源推荐
资源详情
资源评论
收起资源包目录
abstract-factory-pattern.zip (34个子文件)
abstract-factory-pattern
os
Client.java 830B
factory
MacAppFactory.java 391B
WinAppFactory.java 391B
LinuxAppFactory.java 401B
AbstractAppFactory.java 272B
vo
LinuxEditApp.java 180B
WinViewerApp.java 183B
WinEditApp.java 177B
MacViewerApp.java 177B
AbstractViewerApp.java 228B
AbstractEditApp.java 223B
MacEditApp.java 170B
LinuxViewerApp.java 187B
demo
Client.java 1KB
factory
Creator1Factory.java 490B
Creator2Factory.java 497B
AbstractCreatorFactory.java 298B
vo
ProductB2.java 177B
ProductA2.java 211B
ProductA1.java 177B
ProductB1.java 211B
AbstractProductB.java 242B
AbstractProductA.java 242B
nvwa
made
man
factory
FemaleFactory.java 422B
HumanFactory.java 212B
MaleFactory.java 415B
Test.java 739B
vo
FemaleYellowHuman.java 187B
AbstractWhiteHuman.java 291B
AbstractBlackHuman.java 291B
Human.java 134B
MaleYellowHuman.java 185B
AbstractYellowHuman.java 291B
README.md 2KB
共 34 条
- 1
资源评论
前鼻音太阳熊
- 粉丝: 394
- 资源: 15
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功