zoukankan      html  css  js  c++  java
  • 第八话-工厂方法模式


    

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


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

    工厂方法模式和简单工厂模式除了工厂类不同之外其它都一样。
    二、有了简单工厂模式为什么还用工厂方法模式?
    简单工厂模式似乎非常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。一起学习,加油。

  • 相关阅读:
    SDWebImage
    ios面试题
    IOS推送功能push
    NSString什么时候用copy,什么时候用strong
    OC点语法和变量作用域
    iOS 常用几种数据存储方式
    JSON与XML的区别比较
    IOS开发——网络编程OC篇&Socket编程
    IOS-UI控件大全
    使用sql语句备份一张表
  • 原文地址:https://www.cnblogs.com/yxwkf/p/5058974.html
Copyright © 2011-2022 走看看