美文网首页
构建模式Builder

构建模式Builder

作者: 陈陈_04d0 | 来源:发表于2020-12-01 15:47 被阅读0次

    优点:易扩展,使用方便灵活配置参数。例如AlertDialog、Retrofit ...

    缺点:内部变化复杂,会有很多的建造类。

    Person person =new Person.PersonBuilder()

    .buildAge(10)

    .buildLike("watch TV")

    .buildName("CC")

    .build();

    /**

    * Builder 构建模式

    */

    public class Person {

    private Stringname;

        private Stringlike;

        private int age;

        private Stringkind;

        private Person(String name, String like, int age, String kind) {

    this.name = name;

            this.like = like;

            this.age = age;

            this.kind = kind;

        }

    public Person(PersonBuilder builder) {

    this.name = builder.name;

            this.like = builder.like;

            this.age = builder.age;

            this.kind = builder.kind;

        }

    public Person() {

    }

    protected void setName(String name) {

    this.name = name;

        }

    protected void setLike(String like) {

    this.like = like;

        }

    protected void setAge(int age) {

    this.age = age;

        }

    protected void setKind(String kind) {

    this.kind = kind;

        }

    static class PersonBuilder {

    private Stringname;

            private Stringlike;

            private int age;

            private Stringkind;

            PersonBuilder() {

    }

    public PersonBuilderBuilder(String name) {

    this.name = name;

    return this;

            }

    public PersonBuilderBuilder(int age) {

    this.age = age;

    return this;

            }

    PersonBuilderbuildName(String name) {

    this.name = name;

    return this;

            }

    PersonBuilderbuildAge(int age) {

    this.age = age;

    return this;

            }

    PersonBuilderbuildLike(String like) {

    this.like = like;

    return this;

            }

    PersonBuilderbuildKind(String kind) {

    this.kind = kind;

    return this;

            }

    Personbuild() {

    //        Person person = new ManPerson();

    //        person.setAge(age);

                return new Person(this);

            }

    }

    @NonNull

    @Override

        public StringtoString() {

    return "Person:" +kind +" NAME = " +name +" LIKE =" +like +" AGE = " +age;

        }

    }

    相关文章

      网友评论

          本文标题:构建模式Builder

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