zoukankan      html  css  js  c++  java
  • Android设计模式系列(12)SDK源码之生成器模式(建造者模式)

    建造者模式把构造和表示分离开,根据客户需求生产一个相应的对象。
    本来呢,我们根据Builder接口实现不同的具体的ConcreteBuilder,就可生产不同的对象了。
    但是,下面例子的只有一个Builder,所以也没有接口Builder,也没有其他的ConcreteBuilder。
    但是我今天要讲的例子太简单,简单到都不觉得是建造者模式,但是又有建造者模式的感觉。

    1. 意图
    将一个复杂对象的构建和它的表示分离,使得同样的创建过程可以创建不同的表示。

    2.结构图和代码
    android中大量的使用对话框组件,它的调用方法就是构建,拼接,表示。

    Builder通过setTitle(),setMessage(),setIcon()等方法在create()中构造出一个AlertDialogInstance对象。
    然后客户可以把把AlertDialogInstance对象show出去。

    针对这个例子,我有必要通过扩展一下,以正建造者模式之名。
    如何扩展?
    (1).创建其他的ConcreteBuilder
    (2).创建其他的ElseDialog
    (3).第1,2步决定了我们最好创建一个抽象的Builder
    (4).创建一个Context,把builder注入进去,生产不同的Dialog(或者其他UI)对象。

    3.效果
    (1).创建型模式
    (2).可以生产不同的Dialog,也可以生产其他的UI,生产的Product可以是差别很大的,所以也没必要为Product定义抽象父类。

  • 相关阅读:
    redis远程连接超时
    GNU LIBC源代码学习之strcmp
    计算最小生成树
    域名和空间的绑定问题
    Spring MVC 基于Method的映射规则(注解版)
    Spring MVC 基于URL的映射规则(注解版)
    手把手教你编写Logstash插件
    Ruby中如何识别13位的时间戳
    [logstash-input-http] 插件使用详解
    Java直接(堆外)内存使用详解
  • 原文地址:https://www.cnblogs.com/qianxudetianxia/p/3031188.html
Copyright © 2011-2022 走看看