抽象工厂模式在23种设计模式中是如何体现其独特性的?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2224个文字,预计阅读时间需要9分钟。
前言:在抽象工厂模式开篇之前,我们先思考一个问题,如果我们需要设计一套房子,其他组件暂时不考虑,那么我们首先考虑的是房顶、地板、窗户、门的设计。什么样的风格暂时未知,可行吗?
前言
在抽象工厂模式开篇之前,我们先思考一个问题,如果我们要设计一套房子,其他的组件暂时不考虑,我们仅仅考虑房顶、地板、窗户、房门进行设计。什么样的风格暂时未知,可能会有很多种类。可以先设计一套古典风格的房子,再设计一套现代风格的房子,再设计一套欧式风格的房子....这么多套房子需要设计,需求不断变化,我们该怎么才能后期的维护和扩展就更有利呢?那当然是减少客户端代码与具体产品类之间的依赖,降低了系统的耦合度,这就是抽象工厂模式的优点之处。
抽象工厂模式定义
抽象工厂模式:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。
- 抽象产品类角色(AbstractProduct):为抽象工厂中相互依赖的每种产品定义抽象接口对象,也可以这样说,有几种产品,就要声明几个抽象角色,每一个抽象产品角色和一种具体的产品相匹配。
- 具体产品类(ConcreteProduct):具体产品类实现了抽象产品类,是针对某个具体产品的实现的类型。
- 抽象工厂类角色(Abstract Factory):定义了创建一组相互依赖的产品对象的接口操作,每种操作和每种产品一一对应。
- 具体工厂类角色(ConcreteFactory):实现抽象类里面的所有抽象接口操作,可以创建某系列具体的产品,这些具体的产品是“抽象产品类角色”的子类。
抽象工厂模式代码实现
抽象工厂模式的实现,只需要创建三个类:抽象工厂类,具体风格工厂类和具体产品风格实现类。
本文共计2224个文字,预计阅读时间需要9分钟。
前言:在抽象工厂模式开篇之前,我们先思考一个问题,如果我们需要设计一套房子,其他组件暂时不考虑,那么我们首先考虑的是房顶、地板、窗户、门的设计。什么样的风格暂时未知,可行吗?
前言
在抽象工厂模式开篇之前,我们先思考一个问题,如果我们要设计一套房子,其他的组件暂时不考虑,我们仅仅考虑房顶、地板、窗户、房门进行设计。什么样的风格暂时未知,可能会有很多种类。可以先设计一套古典风格的房子,再设计一套现代风格的房子,再设计一套欧式风格的房子....这么多套房子需要设计,需求不断变化,我们该怎么才能后期的维护和扩展就更有利呢?那当然是减少客户端代码与具体产品类之间的依赖,降低了系统的耦合度,这就是抽象工厂模式的优点之处。
抽象工厂模式定义
抽象工厂模式:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。
- 抽象产品类角色(AbstractProduct):为抽象工厂中相互依赖的每种产品定义抽象接口对象,也可以这样说,有几种产品,就要声明几个抽象角色,每一个抽象产品角色和一种具体的产品相匹配。
- 具体产品类(ConcreteProduct):具体产品类实现了抽象产品类,是针对某个具体产品的实现的类型。
- 抽象工厂类角色(Abstract Factory):定义了创建一组相互依赖的产品对象的接口操作,每种操作和每种产品一一对应。
- 具体工厂类角色(ConcreteFactory):实现抽象类里面的所有抽象接口操作,可以创建某系列具体的产品,这些具体的产品是“抽象产品类角色”的子类。
抽象工厂模式代码实现
抽象工厂模式的实现,只需要创建三个类:抽象工厂类,具体风格工厂类和具体产品风格实现类。

