创建者模式优点
- 隐藏复杂对象的构造过程,使客户端不需要了解对象的构造细节,只需调用指导程序即可完成对象的创建。
- 可以对构造过程进行更好的控制,指导程序可以按照设计要求逐步生成想要的对象。
- 可以创建具有不同内部状态的相似对象,在原始对象之上进行修改和扩展非常容易。
- 更好地支持单一职责原则和开放封闭原则。通过从复杂对象构造器中抽离对象的创建和组装细节,并将其转移到专门的对象创建类中,使得代码更加易于维护和拓展。
创建者模式缺点
- 会增加代码量和创建类的数量,这对小型项目来说可能会有些困难。
- 当类中存在大量属性时,每个属性都需要在生成器接口中进行定义,这可能会导致代码变得冗长和难以维护。
总的来说,创建者模式是一种非常有用的设计模式,特别是当需要生成复杂对象时。它可以帮助我们隐藏对象构造的复杂性,并提供更灵活的创建和组装过程。 创建者模式是一种设计模式,用于创建复杂对象。在这种模式中,对象的构造被分解为多个步骤,并由一个指导程序来管理这些步骤。
下面是一个使用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;
}
}
日常使用的频率还是十分高的。