zoukankan      html  css  js  c++  java
  • IOS设计模式学习(6)生成器

    1 前言

    有时候,构建某些对象有多种不同方式。如果这些逻辑包含在构建这些对象的类中的单一方法中,构建的逻辑会非常荒唐(例如,针对各种构建需求的一大片嵌套if-else或者switch-case语句)。如果能把构建过程分解为:客户-指导者-生成器(client-director-builder)的关系,那么过程将更容易管理与复用。针对此类关系的设计模式成为生成器。

    2 详述

    2.1 简述

    除了客户和所需要的产品,生成器模式包含连个角色:Director(指导者)和Builder(生成器)。Builder知道如何在缺少某些特定信息来建造特点产品。Director知道Builder应该如何建造什么,以参数向其提供缺少的信息来建造特定产品。

    生成器模式讲一个复杂对象的构建与它的表现分离,使得同样的构建过程可以创建不同的表现。

    2.2 何时使用

    (1)需要创建涉及各种部件的复杂对象。创建对象的算法应该独立于部件的装配方式。常见的例子是构建组合对象。

    (2)构建过程需要以不同的方式(例如,部件或表现的不同组合)构建对象。

    2.3 生成器与抽象工厂的对比

    (1)生成器构建复杂对象,抽象工厂构建简单或者复杂对象;

    (2)生成器以多个步骤构建对象,抽象工厂以单一步骤构建对象;

    (3)生成器以多种方式构建对象昂,抽象工厂以单一步骤构建对象;

    (4)生成器在构建过程的最后一步返回产品,抽象工厂立刻返回产品;

    (5)生成器专注一个特定产品,抽象工厂强调一套产品。

    3 结语

    生成器模式能帮助构建涉及部件与表现的各种组件的对象。

    以上是所有内容,希望对大家有所帮助。

  • 相关阅读:
    dbutils关于连接维护的问题Q
    触发器
    mysql的full join的实现
    mysql exists 和 in的效率比较
    浏览器禁用Cookie后的session处理
    自定义org.apache.commons.beanutils的类型转换器
    Java中形参个数可变的方法
    递归方法的重要规定——递归一定要向己知方向递归
    抽象工厂模式——肯德基消费
    异常链
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3162956.html
Copyright © 2011-2022 走看看