美文网首页
Builder 模式

Builder 模式

作者: mibro | 来源:发表于2018-04-05 21:19 被阅读0次

Java 繁琐写法

@Data
public class People {
    private String name;
    private Integer age;
    private String sex;
    private String address;
    private String phoneNo;

    public static class PeopleBuilder {
        // 必选参数
        private String name;
        private Integer age;
        // 可选参数
        private String sex;
        private String address;
        private String phoneNo;

        public PeopleBuilder(String name, Integer age) {
            this.name = name;
            this.age = age;
        }

        public PeopleBuilder sex(String sex) {
            this.sex = sex;
            return this;
        }

        public PeopleBuilder address(String address) {
            this.address = address;
            return this;
        }

        public PeopleBuilder phoneNo(String phoneNo) {
            this.phoneNo = phoneNo;
            return this;
        }

        public People build() {
            return new People(this);
        }
    }

    private People(PeopleBuilder peopleBuilder) {
        this.name = peopleBuilder.name;
        this.age = peopleBuilder.age;
        this.address = peopleBuilder.address;
        this.sex = peopleBuilder.sex;
        this.phoneNo = peopleBuilder.phoneNo;
    }

    public static void main(String[] args) {
        People people = new PeopleBuilder("Jone", 30).address("hz").build();
        System.out.println(people.getName());
    }
}

lombok 之 @Builder

@Builder
@Data
public class People {
    private String name;
    private Integer age;
    private String sex;
    private String address;
    private String phoneNo;
    public static void main(String[] args) {
        People people = People.builder().address("hz").phoneNo("123").build();
        System.out.println(people.getPhoneNo());
    }
}
  • 重叠构造器模式
    特点:若干个构造方法,最短的一个参数,最长的包含所有参数
    缺点:显而易见,难以阅读
  • JavaBeans模式
    特点:一个无参数的构造函数加各种setter 方法。
    缺点:构造方法在多次调用中被分割,所以在构造过程中JavaBean可能处于不一致的状态
  • builder 模式
    Builder模式既能保证像重叠构造器模式那样的安全性,也能保证像JavaBeans模式那么好的可读性。Builder模式不直接生成想要的对象,而是让客户端利用所有必要的参数调用构造器(或者静态工厂),得到一个builder对象。然后客户端在builder对象上调用类似于setter的方法,来设置每个相关的可选参数。最后,客户端调用无参的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/skbdhftx.html