一、工厂模式简介
1、工厂模式主要作用:为创建对象提供接口。
2、工厂模式的分类:在《java与模式》一书中分为三类,分别是“简单工厂模式(Simple Factory)”,“工厂方法模式(Factory Method)”,“抽象工厂模式(Abstract Factory)”。当然也有其他的分法,在此以上面的三类分法作为本文说明。
3、工厂模式的应用场合:
a、编码时无法预见需要创建哪种类的实例;
b、系统不依赖于产品类的实例来创建、组合和表达细节。
二、三种工厂模式的说明
1、简单工厂模式
a、简介:三种工厂模式中最为简单的一个。
b、组成:
1、工厂类角色:这是本模式的核心,含有一定的商业逻辑和判断逻辑。在java中它往往由一个具体类实现。
2、抽象产品角色:它一般是具体产品继承的父类或者实现的接口。在java中由接口或者抽象类来实现。
3、具体产品角色:工厂类所创建的对象就是此角色的实例。在java中由一个具体类实现。
c、类图说明:
d、实例(具体实现看所附代码):{
ShapeFactory(工厂类)
IShape(抽象产品)
RectShape、CircleShape(具体产品)
}
2、工厂方法模式
a、简介:是“简单工厂模式”在“工厂类”这一层级的抽象,即“简单工厂”的工厂。
b、组成:
1、抽象工厂角色:这是工厂方法模式的核心,它与应用程序无关。是具体工厂角色必须实现的接口或者必须继承的父类。在java中它由抽象类或者接口来实现。
2、具体工厂角色:它含有和具体业务逻辑有关的代码。由应用程序调用以创建对应的具体产品的对象。在java中它由具体的类来实现。
3、抽象产品角色:它是具体产品继承的父类或者是实现的接口。在java中一般有抽象类或者接口来实现。
4、具体产品角色:具体工厂角色所创建的对象就是此角色的实例。在java中由具体的类来实现。
c、类图说明:
d、实例(具体实现看所附代码):{
IShapeFactory(抽象工厂)
CircleFactory、RectFactory(具体工厂,实现抽象工厂)
IShape(一级抽象产品)
Circle、Rect(二级抽象产品,继承一级抽象产品)
WhiteCircle、BlackCircle(具体产品,Circle的实现类)
GreenRect、BlueRect(具体产品,Rect的实现类)
注:
CircleFactory的 “产品树”下的产品与
RectFactory的 “产品树”下的产品之间没有联系。
}
3、抽象工厂模式
a、简介:“抽象工厂模式”与“工厂方法模式”表面上看差不多,其实“抽象工厂模式”是“工厂方法模式”的进一步抽象,更具一般性。
b、组成(与“工厂方法模式一样”):
1、抽象工厂角色:这也是抽象工厂模式的核心,它与应用程序无关。是具体工厂角色必须实现的接口或者必须继承的父类。在java中它由抽象类或者接口来实现。
2、具体工厂角色:它含有和具体业务逻辑有关的代码。由应用程序调用以创建对应的具体产品的对象。在java中它由具体的类来实现。
3、抽象产品角色:它是具体产品继承的父类或者是实现的接口。在java中一般有抽象类或者接口来实现。
4、具体产品角色:具体工厂角色所创建的对象就是此角色的实例。在java中由具体的类来实现。
c、类图说明:
d、实例(具体实现看所附代码):{
IShapeFactory(抽象工厂)
SmallShapeFactory、LargeShapeFactory(具体工厂,实现抽象工厂)
IShape(一级抽象产品)
IShapeCircle、IShapeRect(二级抽象产品,继承一级抽象产品)
LargeCircle、SmallCircle(具体产品,Circle的实现类)
LargeRect、SmallRect(具体产品,Rect的实现类)
注:
SmallShapeFactory “产品树”下的产品与LargeShapeFactory “产品树”下的产品之间有联系,而这种联系就形成了“产品族”。
例如
LargeCircle 与
SmallCircle 同属Circle下的产品,它们两者形成一个“Circle”产品族。
同样,
LargeRect 与
SmallRect 也形成一个“Rect”产品族。
}
e、“抽象工厂模式”与“工厂方法模式”的区别:
“工厂方法模式”中的一棵"产品树"与其令一棵“产品树”的产品之间没有联系。
“抽象工厂模式”却有这样的联系,而这种联系就形成了所谓的“产品族”。
- 大小: 18.3 KB
- 大小: 25.1 KB
- 大小: 14.3 KB
分享到:
相关推荐
java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式...
### Java设计模式详解 #### 一、背景与概念 在软件工程领域,设计模式是一种用于解决常见问题的可重用解决方案。《Java设计模式PDF》是一本由James W. Cooper编写的经典书籍,该书详细介绍了Java编程语言中的设计...
Java设计模式是面向对象编程领域中的重要概念,它是一套被广泛接受并实践的解决软件设计问题的经验总结。设计模式并非具体的代码或库,而是一种在特定情境下为了解决常见问题而制定的通用解决方案的描述。它们描述了...
Java 经典设计模式讲解以及项目实战 设计模式简介:主要介绍各种设计模式的概念和运用场景等 设计模式综合运用:主要是笔者在实际工作中运用到的一些设计模式综合运用事例的提炼 Spring设计模式简介:主要是讲述...
Java设计模式是软件工程中的一种最佳实践,它总结了在特定场景下解决常见问题的经验,为程序员提供了可重用的解决方案。本资料“《java设计模式》课后习题模拟试题解答——刘伟.zip”主要涵盖了Java设计模式的学习与...
《Java设计模式》课程设计报告主要探讨了如何利用Java编程语言和MyEclipse集成开发环境来实现基于设计模式的西瓜市场系统。这个项目涵盖了四种重要的设计模式:单例模式、代理模式、建造者模式和抽象工厂模式,为...
"设计模式之java工厂模式"是关于如何优雅地创建对象的一种经典设计模式,它属于创建者模式类别。创建者模式主要关注对象的创建,而工厂模式则在其中扮演着重要角色,因为它提供了一种抽象的方式来创建对象,从而使...
1、爪哇语言结构性模式之变压器模式介绍 2、爪哇语言抽象工厂创立性模式介绍 3、工厂方法创立性模式介绍 4、单态创立性模式介绍 5、单态创立性模式介绍 6、观察者模式介绍7、责任链模式 8、设计模式之Observer 9、...
### Java设计模式(刘伟) #### 一、引言 在《Java设计模式》这本书中,作者刘伟全面地介绍了24种经典的设计模式,并通过丰富的案例和代码示例进行了详细的解析。本书不仅适合初学者作为入门教材,也适合有一定...
题目中的第一个选项“同一问题的不同表现形式”(A) 描述了设计模式的主要应用场景之一。设计模式帮助开发者处理常见的软件设计难题,确保代码的可读性、可维护性和可扩展性。 ### 2. 面向对象的基本原则 面向对象...
《Java设计模式》是刘伟老师的一本经典教材,它深入浅出地讲解了软件设计中的重要概念——设计模式。设计模式是经验丰富的开发者在解决常见问题时总结出的通用解决方案,是软件开发中的智慧结晶。这本书的课后习题和...
### Java设计模式详解 在软件开发领域,设计模式是一种被广泛采用的解决方案,用来解决常见的设计问题。设计模式不仅能够帮助开发者写出可复用、可维护的代码,还能提高团队间的沟通效率。以下是对给定文件中提到的...
本文将着重探讨创建型模式、结构型模式和行为模式这三大类设计模式,并结合六项设计原则进行深入解析。 首先,我们来看创建型模式。创建型模式关注于对象的创建,它们提供了创建对象的灵活方式,使得代码更具复用性...
本系统基于六种设计模式,运用到的设计模式有备忘录模式,简单工厂模式,迭代器模式,状态模式,模版方法模式,单例模式。 具体实现过程、UML类图以及实现效果详见如下项目说明地址: ... 该系统为绘图系统,该系统通过...
设计模式通常分为三大类:创建型模式、结构型模式和行为型模式。创建型模式关注对象的创建;结构型模式关注类或对象的组合;行为型模式则关注类或对象之间的交互和职责分配。 2. 单例模式 单例模式是最常见的创建型...
《Java设计模式》是刘伟教授的一本关于设计模式的教材,主要面向高等学校的学生和对Java编程有深入兴趣的开发者。设计模式是软件工程中的一种重要思想,它封装了在特定场景下的问题解决方案,可以提高代码的可读性、...
Java设计模式是软件工程中的一种最佳实践,它提供了一套标准的解决方案,用于解决在编写可维护、可扩展和高效代码时经常遇到的问题。这些模式是经验丰富的开发者们在面对相似问题时,经过反复试验和优化后总结出的...