创建者模式

85 阅读2分钟

创建者模式优点

  1. 隐藏复杂对象的构造过程,使客户端不需要了解对象的构造细节,只需调用指导程序即可完成对象的创建。
  2. 可以对构造过程进行更好的控制,指导程序可以按照设计要求逐步生成想要的对象。
  3. 可以创建具有不同内部状态的相似对象,在原始对象之上进行修改和扩展非常容易。
  4. 更好地支持单一职责原则和开放封闭原则。通过从复杂对象构造器中抽离对象的创建和组装细节,并将其转移到专门的对象创建类中,使得代码更加易于维护和拓展。

创建者模式缺点

  1. 会增加代码量和创建类的数量,这对小型项目来说可能会有些困难。
  2. 当类中存在大量属性时,每个属性都需要在生成器接口中进行定义,这可能会导致代码变得冗长和难以维护。

总的来说,创建者模式是一种非常有用的设计模式,特别是当需要生成复杂对象时。它可以帮助我们隐藏对象构造的复杂性,并提供更灵活的创建和组装过程。 创建者模式是一种设计模式,用于创建复杂对象。在这种模式中,对象的构造被分解为多个步骤,并由一个指导程序来管理这些步骤。

下面是一个使用Java语言实现创建者模式的示例代码: public class Person { private String name; private int age; private String address;

// 构造函数私有化
private Person() {}

// Builder 类嵌套在 Person 类中
public static class Builder {
    private String name = "";
    private int age = 0;
    private String address = "";
    
    public Builder setName(String name) {
        this.name = name;
        return this;
    }
    
    public Builder setAge(int age) {
        this.age = age;
        return this;
    }
    
    public Builder setAddress(String address) {
        this.address = address;
        return this;
    }
    
    public Person build() {
        Person person = new Person();
        person.name = this.name;
        person.age = this.age;
        person.address = this.address;
        return person;
    }
}

// getter 和 setter 方法
public String getName() {
    return this.name;
}

public void setName(String name) {
    this.name = name;
}

public int getAge() {
    return this.age;
}

public void setAge(int age) {
    this.age = age;
}

public String getAddress() {
    return this.address;
}

public void setAddress(String address) {
    this.address = address;
}

}

日常使用的频率还是十分高的。