Builder设计模式

背景

当一个java对象有大量的成员变量,在构造它的时候有以下几种方式

1.构造方法传参 缺点:代码难以编写,难以阅读)

2.使用get set方法:缺点:每个set只操作一个属性 没有相近属性进行更好的封装

3.builder构造器

build构造器

builder构造器会把类的成员变量分成好几类

比如人的姓名,年龄和id是基础信息,这三个信息可以抽象成一个构造方法

身高和体重 抽象成一个外形的构造方法。

代码如下

    public static class PersonBuilder {
        Person p = new Person();
        public PersonBuilder basicInfo(int id, String name, int age) {
            p.id = id;
            p.name = name;
            p.age = age;
            return this;
        }
        public PersonBuilder appearancen (double weight,double height) {
            p.weight = weight;
            p.height = height;
            return this;
        }
        public Person build() {
            return p;
        }
    }

我们则可以使用构造器构造对象

        Person p = new Person.PersonBuilder()
                .basicInfo(1, "zhangsan", 18)
                .appearancen (120,170)
                .build();

个人观点:构造器就是对set方法的一个封装,把相近set的方法封装在一个builder方法里面

 

posted @ 2020-11-06 00:20  palapala  阅读(51)  评论(0编辑  收藏  举报