工厂方法模式详解
来源:互联网 发布:php 输出文本 编辑:程序博客网 时间:2024/06/03 15:59
UML图
工厂方法模式URL图如下:
解决问题
在简单工厂模式进一步抽象而来,解决了如何实例化一个对象,也克服了简单工厂模式中违背的“开-闭原则”的缺点。
核心思想
工厂方法模式中,核心的工厂类不再提供所有产品的创建工作,而是将具体的产品交给具体的工厂类去实现。核心工厂类值负责制定具体工厂需要实现的接口即可,至于具体的工作交给子类去实现。
实际运用
假设我们有一个手机加工厂,具体的子工厂来生产Android手机和Iphone。类图如下:
根据类图可以定义客户端调用代码:
//获得制造Android手机的工厂CreatorPhone androidFactory = new CreatorAndroidPhone();//根据Android手机工厂制造Android机Phone androidPhone = androidFactory.createPhone();androidPhone.call();
优点
由于工厂方法模式中的核心是抽象的工厂类,所有的工厂类必须实现抽象工厂类的接口。当系统需要扩展添加新的产品,则只需要添加一个具体的产品对象和具体的工厂对象即可。不需要对原有工厂进行修改。也不需要修改客户端,这就符合了“开闭原则”。
缺点
使用工厂模式,客户端需要判断要实例化哪个具体的工厂。具体的实现工厂可能需要增加代码量。
Android与工厂方法模式
在Android中Activity和Service等核心组建中,都定义了onCreate()方法,例如当我们要显示用户界面的时候,一般都会在onCreate()中使用setContentView()方法,这个方法是在Activity中定义的,在编写具体的Activity时有继承者实现。
0 0
- 工厂方法模式详解
- 工厂方法模式详解
- 工厂模式及工厂方法模式详解
- 工厂模式,工厂方法模式,抽象工厂模式 详解
- 工厂模式详解(简单工厂+工厂方法+抽象工厂)
- 工厂模式详解(简单工厂+工厂方法+抽象工厂)
- 设计模式详解之工厂方法模式
- 设计模式详解之工厂方法模式
- 设计模式之--工厂模式详解(简单工厂、工厂方法、抽象工厂)
- 工厂模式 -- 工厂方法
- 工厂模式-工厂方法
- 工厂模式-工厂方法
- 工厂 > 工厂方法模式
- 工厂模式-工厂方法模式
- 工厂模式-工厂方法模式
- 工厂模式---工厂方法模式
- 设计模式——工厂方法模式详解
- 详解设计模式——工厂方法模式
- MySQL server has gone away 问题的解决方法
- Android编译遇到的问题
- HTML转义字符在PHP输出语句中的应用
- Unity3d NGUI的使用(九)(UIScrollView制作滑动列表)
- POJ 1005
- 工厂方法模式详解
- XML转义字符应用
- 算法合集之《信息学中守恒法的应用》
- 类的对象和类的指针的区别
- 导出MySQL表结构
- UILabel 的属性
- 在MDK上建立一个C++的STM32开发工程
- SQL必知必会 笔记 第十六章 更新和插入数据
- XMPP - Socket 实现创建聊天室