zoukankan      html  css  js  c++  java
  • iOS设计模式之工厂方法模式

    工厂方法模式

    基本理解

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

    何时使用工厂方法

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

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

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

    例子:

    比如

    NSNumber *twentySeven = [NSNumber numberWithInt:27];
    

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

  • 相关阅读:
    HTTP协议简介
    Hadoop日记Day1---Hadoop介绍
    Linux日记Day3---Linux的文件属性与目录配置
    Hadoop日记Day4---去除HADOOP_HOME is deprecated
    Android 系统名字、版本、API level的对应关系
    win10搭建selendroid测试环境
    初识selendroid
    学习selendroid初衷
    Contos 安装nodeJs环境
    Failed to write HTTP message,Could not write JSON错误
  • 原文地址:https://www.cnblogs.com/zhanggui/p/4714623.html
Copyright © 2011-2022 走看看