建造者模式

jasmine 于 2019-03-06 发布

1、示例

public class Person {
    private Long id;
    private Integer age;
    private String name;

    Person(Long id, Integer age, String name) {
        this.id = id;
        this.age = age;
        this.name = name;
    }

    public static Person.PersonBuilder builder() {
        return new Person.PersonBuilder();
    }

    public static class PersonBuilder {
        private Long id;
        private Integer age;
        private String name;

        PersonBuilder() {
        }

        public Person.PersonBuilder id(Long id) {
            this.id = id;
            return this;
        }

        public Person.PersonBuilder age(Integer age) {
            this.age = age;
            return this;
        }

        public Person.PersonBuilder name(String name) {
            this.name = name;
            return this;
        }

        public Person build() {
            return new Person(this.id, this.age, this.name);
        }

        public String toString() {
            return "Person.PersonBuilder(id=" + this.id + ", age=" + this.age + ", name=" + this.name + ")";
        }
    }
}