美文网首页
设计模式之构建者模式

设计模式之构建者模式

作者: wislie_zhu | 来源:发表于2020-02-11 14:39 被阅读0次

Builder属于创建型设计模式

Builder定义:

Separate the construction of a complex object from its representation,so that the same construction process can create different representations

复杂对象的构造与其表示分离,以便相同的构造过程可以创建不同的表示

优点:

1.创建对象时可根据需要设置属性,自由度更大

2.链式设置属性,代码更简洁

3.具体的建造者类之间是相互独立的,这有利于系统的扩展

4.build()方法规避风险,在每个参数引用之前进行判断拦截

使用场景:

Builder模式用于创建一个比较复杂的类,参数多,且很多参数都有可以默认值

使用方式:

1.在静态内部类中创建当前类对象

2.多态+泛型 创建当前对象

方式一:在静态内部类中创建当前类对象(比如Android中的AlertDialog和OKhttpClient的创建)

 private static class Builder {

        private String title;
        private String msg;

        private OnClickListener onClickListener;

        public Builder title(String title) {
            this.title = title;
            return this;
        }

        public Builder msg(String msg) {
            this.msg = msg;
            return this;
        }

        public Builder setOnClickListener(OnClickListener onClickListener) {
            this.onClickListener = onClickListener;
            return this;
        }

        public Dialog build() {
            if ("".equals(title) || title == null) {
                throw new NullPointerException("title 不能为空");
            }
            if ("".equals(msg) || msg == null) {
                throw new NullPointerException("msg 不能为空");
            }
            Dialog dialog = new Dialog(title, msg);
            if (onClickListener != null) {
                dialog.setOnClickListener(onClickListener);
            }
            return dialog;
        }
    }

链式调用

new Builder()
            .title("复工")
            .msg("离复工还有1天")
            .setOnClickListener(new OnClickListener() {
                @Override
                public void onClick() {
                    System.out.println("点击开工");
                }
            })
            .build()
            .show()
            .onClick();

方式二.多态+泛型

未命名文件.png

源码链接:https://github.com/A18767101271/java-/tree/master/src/chapter_pattern/builder

相关文章

  • Builder模式

    一、作用 工匠若水-设计模式(创建型)之建造者模式(Builder Pattern) 用于构建复杂的对象,将构建的...

  • 设计模式之构建者模式

    注意!!!! 如果你是技术大牛、技术大咖,请略过这篇文章避免耽搁您的时间,这篇文章属于入门级别。? 什么是构建者模...

  • 设计模式之构建者模式

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

  • 建造者模式(Builder 模式)

    Android进阶之设计模式 建造者模式( Builder 模式) 定义:将一个复杂对象的构建与它的表示分离,使得...

  • 安卓设计模式-构建者模式

    安卓设计模式-构建者模式 是什么 构建者模式又生builder模式,是将复杂的对象的构建与他的表示分离,使得同样的...

  • java设计模式--建造者模式

    java设计模式--建造者模式 建造者模式定义 建造者模式:是将复杂对象的构建与表示进行分离,使同样的构建过程会有...

  • 设计模式--构建者设计模式

    设计模式--构建者设计模式 1. 概念理解 建造者模式,将一个复杂的对象的构建与他的表示分离,使得同样的构建过程可...

  • Mybatis中的设计模式

    Mybatis 设计模式 mybaits最少用到了九种设计模式: 设计模式mybaits体现Builder构建者模...

  • Android中涉及的模式

    我的Java设计模式-建造者模式 我的Java设计模式-观察者模式 重学设计模式之单例模式

  • Retrofit 面试总结

    涉及到的设计模式 外观模式,构建者模式,工厂模式,代理模式,适配器模式,策略模式,观察者模式 概括 Retrofi...

网友评论

      本文标题:设计模式之构建者模式

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