美文网首页
Builder模式

Builder模式

作者: Tyhj | 来源:发表于2019-01-29 15:30 被阅读0次

定义

将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示

使用场景

  • 相同的方法,不同的执行顺序,产生不同的结果
  • 多个部件或零件,都可以装配到一个对象中,但是产生的结果不一样
  • 初始化的对象很复杂,参数多,很多都有默认值的时候

理解

构造者(建造者)模式,既然是构造而不是生产,就说明我们需要对构造的参数、顺序进行设定,来构造出想要的对象;方便用户创建复杂的对象,使用者不需要关心构建的内部细节,将构建的过程和部件解耦;将对象构建过程和细节进行封装和复用

举个栗子

网上已经有很多简单的实现例子,都是比较标准的构建者模式;这里举一个实际项目中的栗子;在Android APP中,一般会有一些弹窗来提示用户比如获取权限、提示出错、等待什么的,一般来说风格都是一样的,有固定的几种按键,固定的几种布局;

具体的实现

DialogView就是一个我们需要的自定义的View了,在DialogBuilder中要完成几件事,首先需要一个DialogView对象用来返回,在构造函数中初始化;因为自定义View需要一个Context对象,所以这里传入一个Context

/**
* 弹窗
*/
private DialogView mDialogView;
public DialogBuilder(Context context) {
    mDialogView = new DialogView(context);
}

然后为DialogView设置各种参数,继续返回DialogBuilder对象,来形成一个链式调用;

    /**
     * 设置标题
     *
     * @param titleTxt
     * @return
     */
    public DialogBuilder setTitleTxt(String titleTxt) {
        mDialogView.setTitleTxt(titleTxt);
        return this;
    }

    /**
     * 设置中间的内容
     *
     * @param contentTxt
     * @return
     */
    public DialogBuilder setContentTxt(String contentTxt) {
        mDialogView.setContentTxt(contentTxt);
        return this;
    }
    ...

最后还有一个create方法,返回需要的DialogView对象

    /**
     * 创建View
     *
     * @return
     */
    public DialogView create() {
        return mDialogView;
    }

其实这个东西和Android弹窗AlertDialog.Builder其实差不多的,都去掉了Director类;但是我这里没有抽象出Builder接口来,因为和AlertDialog.Builder不一样,想要定义出更多样式的弹窗,又不想花太多时间,而且只在一个项目中使用,所以没有去抽象出接口,可能对于拓展不是很友好,但是目前够用了,不够用了再去重构;

相关文章

  • 设计模式:Builder

    Builder模式基本介绍Builder模式的实现源码中的Builder模式记录 Builder模式基本介绍 Bu...

  • Builder模式

    个人博客http://www.milovetingting.cn Builder模式 模式介绍 Builder模式...

  • Android中的构建者(Builder)模式

    目录一、场景分析二、定义三、Builder模式变种-链式调用四、经典Builder模式五、用到Builder模式的...

  • Builder模式

    Builder模式?(好熟悉,貌似有说不上来),在这里好好总结一下。 Builder模式的介绍 Builder模式...

  • 设计模式之构建者模式

    Builder属于创建型设计模式 Builder定义: Separate the construction of ...

  • 建造者模式

    建造者模式 创建型模式 Director、Builder、Product建造模型 Builder负责构建Produ...

  • Builder模式及原型模式

    本文主要内容 Builder模式定义 Builder模式 原型模式定义 原型模式 本文介绍两种简单的设计模式,Bu...

  • 11.2设计模式-构建者模式-详解

    构建者模式 java的builder模式详解 builder模式在android中的实际运用 1.java的bui...

  • 第 7 章 Builder 模式 -- 组装复杂的实例

    Builder 模式 概念:组装具有复杂结构的实例可以称为 Builder 模式。 Show me the cod...

  • 设计模式--Builder

    标签(空格分隔): android 设计模式 builder 1 Builder设计模式概述 将复杂对象的构建与它...

网友评论

      本文标题:Builder模式

      本文链接:https://www.haomeiwen.com/subject/ujpxsqtx.html