工厂方法模式
来源:互联网 发布:德州扑克训练软件 编辑:程序博客网 时间:2024/05/12 00:04
在工厂方法模式之前,有个简单工厂模式。实际上简单工厂是工厂方法的退化(特殊情况)
简单工厂模式存在以下缺点:
1、工厂类集中了所有产品的创建逻辑,职责过重,一旦不能正常工作,整个系统都要受到影响
2、增加系统中类的个数(引入了新的工厂类),增加了系统的复杂度和理解难度
3、系统扩展困难,一旦添加新产品不得不修改工厂逻辑,违背软件开发时遵循的开闭原则
简单工厂模式与工厂模式的区别:
工厂方法模式不再遵循简单工厂中所有的实例化都放在一个工厂中。而是定义一个抽象工厂,对于每一种产品,都由抽象工厂的子工厂负责实例化。这样如果增加产品,就只需增加相应的产品类与具体工厂类即可。便于系统的扩展。
简言之:简单工厂的核心是实的工厂类,工厂方法的核心是抽象工厂(公共接口)
这也带来了一些缺点:系统中类的个数将成对增加,在一定程度上增加了系统的复杂度,会给系统带来一些额外的开销
增加了系统的抽象性和理解难度
工厂方法模式设计:
1、抽象产品(定义抽象类或者接口)
2、具体产品
3、抽象工厂(定义抽象类或者接口)
4、具体工厂
package FactoryTest;/* * 抽象产品类 * */interface shapeInterface{ public void shape();}/* *具体产品类 * */class Circle implements shapeInterface{ @Override public void shape() { System.out.println("圆形以创建"); }}class Triangle implements shapeInterface{ @Override public void shape() { System.out.println("三角形"); }}/* * 抽象工厂 类 * 工厂模式的核心 */interface abstractFactory{ public shapeInterface create();}/* * 具体工厂类,负责实例化具体的产品 */class createCircle implements abstractFactory{ @Override public shapeInterface create() { return new Circle(); }}class createTriangle implements abstractFactory{ @Override public shapeInterface create() { // TODO Auto-generated method stub return new Triangle(); }}public class FactoryModel { public static void main(String[] args) { abstractFactory fac = new createCircle(); fac.create().shape(); }}
0 0
- 工厂模式 -- 工厂方法
- 工厂模式-工厂方法
- 工厂模式-工厂方法
- 工厂 > 工厂方法模式
- 工厂模式-工厂方法模式
- 工厂模式-工厂方法模式
- 工厂模式---工厂方法模式
- 【模式】工厂方法模式
- 工厂方法,抽象工厂模式
- C#工厂模式-工厂方法
- 工厂模式 和工厂方法
- 工厂模式-C-工厂方法
- 工厂模式以及工厂方法
- 简单工厂、工厂方法、抽象工厂模式
- 简单工厂、工厂方法、抽象工厂模式
- 工厂模式(简单工厂、工厂方法)
- 简单工厂|工厂方法|抽象工厂模式
- 设计模式-工厂模式(简单工厂模式+工厂方法模式)
- Nginx配置ssl以及简单的+Tomcat
- 2016上半年十大APT攻击组织大盘点
- 火爆背后的挑战:直播平台的高并发架构设计
- Flink流处理之迭代案例
- BinderProxy@45d459c0 is not valid; is your activity running?(转载)
- 工厂方法模式
- caption
- 浅谈动态库符号的私有化与全局化
- SDUT 2708 1-2 输出N个数的平方和立方值
- VB操作Excel
- Android Fragment的使用基础
- html5图片命名建议
- Android仿安居客房源详情页图片显示
- Linux c==几种进程间通信方式的特点对比