• iOS设计模式之工厂方法模式


    工厂方法模式

    基本理解

    • 工厂方法模式:定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。
    • 简单工厂的最大优点就是工厂类中包含了必要的逻辑判断,根据客户端的选择条件动态实例化相关的类,对客户端来说,去除了具体产品的依赖。但是它违背了开发封闭原则,如果新添加运算类则需要修改工厂类。
    • 工厂方法模式实现时,客户端需要决定实例化哪一个工厂来实现运算类,选择判断的问题还是存在的,也就是说,工厂方法把简单工厂的内部逻辑判断转移到了客户端代码来进行。如果想添加新的运算功能,则需要修改客户端。
    • 工厂方法也称为虚构造器。它适用于这种情况:
      一个类无法预期需要生成哪个类的对象,想让子类来制定所生成的对象。
    • 工厂方法克服了简单工厂违背了开放封闭原则的缺点,又保持了封装对象创建过程的优点。

    何时使用工厂方法

    • 编译时无法确定预期要创建的对象的类
    • 类想让子类决定在运行时创建什么
    • 类若有若干辅助类为其子类,而你想将返回哪个子类这一信息局部化

    在Cocoa Touch框架中应用工厂方法

    • NSNumber。我们在使用NSNumber时,我们可以通过alloc和init来创建NSNumber的实列,也可以同构numberWith:方法,其实numberWith:方法就是一个类的工厂方法。创建的相关细节,都由NSNumber的类工厂方法负责。

    例子:

    比如

    NSNumber *twentySeven = [NSNumber numberWithInt:27];
    

    其中的numberWithInt就是一个工厂方法。

  • 相关阅读:
    Ural 2070:Interesting Numbers(思维)
    Codeforces 760B:Frodo and pillows(二分)
    Codeforces 760C:Pavel and barbecue(DFS+思维)
    Codeforces 730I:Olympiad in Programming and Sports(最小费用流)
    HDU-2102 A计划
    HDU-2181 哈密顿绕行世界问题
    HDU-1226 超级密码
    学习系列
    学习系列
    学习系列
  • 原文地址:https://www.cnblogs.com/zhanggui/p/4714623.html
Copyright © 2020-2023  润新知