首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

土话设计模式_工厂模式之工厂方法模式

2012-11-14 
白话设计模式_工厂模式之工厂方法模式??????? 简单工厂虽然对产品生产提供了非常好的封装,但并没有遵循面

白话设计模式_工厂模式之工厂方法模式

??????? 简单工厂虽然对产品生产提供了非常好的封装,但并没有遵循面向对象设计的”开放-关闭原则“,工厂方法模式可解决这个问题。

?

?????? “开放-关闭原则”:对扩展开放、对修改关闭。什么意思呢?我的理解是:当我们要扩展新功能时,不需要修改原来的代码,简单的添加某个类、或继承某个抽象类、或实现某个接口就可以完成。

?

?????? 再看上篇中SimpleFactory这个工厂类,如果我们要新增一种输出设备(这是实际项目中肯定会面临的变化)则必须修改这个类,即添加一个if/else或switch/case语句。

?

? ? ? ?下面是工厂方法模式:

public class Main {public static void main(String[] args) {OutPutFactory factory = new PrintFactory();output = factory.createOutput();factory = new MonitorFactory();output = factory.createOutput();}}

这样,我们就解决了“开放-关闭”问题,并且允许客户端随意消费产品。

?

??????? 工厂方法模式的关键在于:一个抽象产品类派生多个具体产品类、一个抽象工厂类派生多个具体工厂子类、每个具体工厂子类负责生产一种具体产品、客户端针对接口编程。

?

??????? 下一篇:抽象工厂

?

热点排行