怎样理解网站建设与开发这门课,自己怎么做百度网站,wordpress读取字体,银川软件开发公司因为如果不使用建造者模式#xff0c;使用一个类时#xff0c;类中可能会创建很多重载的构造方法。
当使用了建造者模式#xff0c;使用一个类时#xff0c;可以选择性地给对象的属性赋值#xff0c;避免类中可能会创建很多重载的构造方法。 以下是最简单的例子#xff…因为如果不使用建造者模式使用一个类时类中可能会创建很多重载的构造方法。
当使用了建造者模式使用一个类时可以选择性地给对象的属性赋值避免类中可能会创建很多重载的构造方法。 以下是最简单的例子 示例1 import lombok.Data;/*** 建造者模式*/
Data
public class Person {private String name;private int age;private String gender;private Person() {this.gender 男 ;}public static class Builder {private final Person person;public Builder() {this.person new Person();}public Builder(String name, int age) {this.person new Person();this.person.name name;this.person.age age;}public Builder name(String name) {this.person.name name;return this;}public Builder age(int age) {this.person.age age;return this;}public Builder gender(String gender) {this.person.gender gender;return this;}public Person build() {return person;}}public static void main(String[] args) {// 这里没有传genderPerson person new Person.Builder().name(小红).age(30).build();System.out.println(person);// 使用构造方法重载Person person1 new Person.Builder(小明, 20).build();System.out.println(person1);}
}示例2直接使用Builder注解
Builder会默认给你生成全参构造方法这里不能再自行定义构造方法了否则报错。这种方式有局限性。 import lombok.Builder;
import lombok.Data;/*** 建造者模式*/
Builder
Data
public class Person1 {private String name;private int age;private String gender;public static void main(String[] args) {Person1 person1 Person1.builder().name(小红).age(30).build();System.out.println(person1);}
}