第八话-工厂方法模式




一直想不通你为什么那么狠心。今天用一下工厂方法模式吧。


一、什么是工厂方法模式?
所谓工厂方法模式即简单工厂模式的升级版。

工厂方法模式和简单工厂模式除了工厂类不同之外其它都一样。
二、有了简单工厂模式为什么还用工厂方法模式?
简单工厂模式似乎非常easy。正由于如此。他的工厂类违背了设计模式中的开放封闭原则。以第一话中的计算器为例。每次添加一个新的操作时都要更改工厂类里的switch分支。

这样就违背了面向对象设计的扩展而非改动-也既是之前学习的开放封闭原则。怎么解决问题呢?我们能够採用依赖倒转原则对其完好。
三、代码演示样例(在第一话计算器的基础上改动)
第一个变化:
把之前的OperationFactory.java改动例如以下
public interface OperationFactory {
 public Operation createOperation();
}
第二个变化:
加入新的工厂类:AddFactory.java
public class AddFactory implements OperationFactory {
 public Operation createOperation() {
  // TODO Auto-generated method stub
  return new AddOperation();
 }
}
使用AddFactory给OperationFactory实例化
OperationFactory factory = new AddFactory();
Operation operation = factory.creaOperation();

注:此图来自《大话设计模式》
四、总结
因为有前面简单工厂模式和封闭开放原则的基础,此模式非常easy。一起学习,加油。

原文地址:https://www.cnblogs.com/yxwkf/p/5058974.html