美文网首页
设计模式_建造者模式(Builder Pattern)

设计模式_建造者模式(Builder Pattern)

作者: 猴小马_spancer | 来源:发表于2018-07-26 09:10 被阅读0次

1、什么是建造者模式

使用多个简单的对象构建成一个复杂的对象

2、建造者模式实操

  • 场景:需要创建一个Person对象,有name、age、sex属性,获取其中任意的属性赋值后,创建Person对象
  • 创建Person类
public class Person {
    private String name;
    private int age;
    private boolean sex;

    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public boolean isSex() {
        return sex;
    }
    public void setSex(boolean sex) {
        this.sex = sex;
    }

    // 构建器,静态内部类
    public static class Builder{
        private String name;
        private int age;
        private boolean sex;

        public Builder name(String name){
            name = name;
            return this;
        }

        public Builder age(int age){
            age = age;
            return this;
        }

        public Builder sex(boolean sex){
            sex = sex;
            return this;
        }

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

    private Person(Builder builder){
        name = builder.name;
        age = builder.age;
        sex = builder.sex;
    }
}

  • 测试调用类
public class Test {
    public static void main(String[] args) {
        // 内部静态类的调用  new 主类名.静态类名();
        Person p = new Person.Builder().name("mars").age(21).sex(true).build();
        System.out.println(p.getName() + " ," + p.getAge() + " ," + p.isSex());
    }
}

3、总结

  • 构建者模式有利有弊,遇到多个构造器参数时要考虑用建造者模式构建
  • 书籍参考:《Effective Java》第二条目

相关文章

网友评论

      本文标题:设计模式_建造者模式(Builder Pattern)

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