创建型模式: Factory Method(工厂方法)
来源:互联网 发布:压声喊麦软件效果器 编辑:程序博客网 时间:2024/06/07 07:26
设计模式: http://zh.wikipedia.org/wiki/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F_(%E8%AE%A1%E7%AE%97%E6%9C%BA)
工厂方法模式:http://zh.wikipedia.org/wiki/%E5%B7%A5%E5%8E%82%E6%96%B9%E6%B3%95%E6%A8%A1%E5%BC%8F
//几个Button类abstract class Button{ public abstract void showInfo();}class WinButton extends Button{ public void showInfo() { System.out.println("this is a WinButton"); }}class MacButton extends Button{ public void showInfo() { System.out.println("this is a MacButton"); }} //它们的工厂类interface ButtonFactory{ abstract Button createButton();}class WinButtonFactory implements ButtonFactory{ public Button createButton(){ return new WinButton(); }}class MacButtonFactory implements ButtonFactory{ public Button createButton(){
//如果需要复用部分创建代码,WinButtonFactory需要定义为抽象类,并实现复用创建代码。
return new MacButton(); }}// Clientpublic class FactoryExample{ public static void main(String args[]){ ButtonFactory bf1 = new WinButtonFactory(); Button btn1 = bf1.createButton(); btn1.showInfo(); ButtonFactory bf2 = new MacButtonFactory(); Button btn2 = bf2.createButton(); btn2.showInfo(); }}
下列情况可以考虑使用工厂方法模式:
- 创建对象需要大量重复的代码。
- 创建对象需要访问某些信息,而这些信息不应该包含在复合类中。
- 创建对象的生命周期必须集中管理,以保证在整个程序中具有一致的行为。
Q:createButton放在各自的工厂类(WinButtonFactory、MacButtonFactory)有什么好处?
A:1)隔离创建过程 2)重复代码可在创建工厂中复用 3)延迟创建
Q:工厂方法模式的缺陷?
A:需要预先定义各个子类的创建方法。
- Factory Method工厂方法(创建型模式)
- Factory Method工厂方法(创建型模式)
- 3. 工厂方法模式(Factory Method)---------- 创建型模式
- 创建型模式5:工厂方法模式(Factory Method)
- 一、创建型模式:工厂方法模式(Factory Method)
- 创建型模式之抽象工厂模式(Abstract Factory)- 工厂方法模式(Factory Method)
- 创建型模式: Factory Method(工厂方法)
- 1.3 Factory Method(工厂方法) -- 对象创建型模式
- 工厂方法--创建型模式(Factory method)
- java工厂方法模式(Factory Method)-创建型
- Factory Method 工厂方法(创建型)
- JAVA设计模式(01):创建型-工厂模式【工厂方法模式】(Factory Method)
- JAVA设计模式(01):创建型-工厂模式【工厂方法模式】(Factory Method)
- JAVA设计模式(24):创建型-工厂模式【工厂方法模式】(Factory Method)
- JAVA设计模式(01_1):创建型-工厂模式【工厂方法模式】(Factory Method)
- 创建型模式--工厂方法模式(Factory Method)
- (创建型模式)Factory Method工厂方法模式
- 设计模式-创建型模式之 Factory Method(工厂方法)
- cocos2d的安装
- 上网与学习
- Windows 7下VS2008升级补丁 (2009-11-12 10:17:11)
- ubuntu 12.10使用体验
- Android--用手指移动画面里的照片/onTouchEvent事件判断
- 创建型模式: Factory Method(工厂方法)
- C标准中的一些预定义宏
- 寻找子树和子孙树 ,家谱树
- Ubuntu查看crontab运行日志
- 苹果信息推送服务(Apple Push Notification Service)使用总结
- opengl clip plane
- java再学习之泛型
- 寒假刷题之10——细菌密度
- 事件_内存和性能-读书笔记五