企业网站优化定制,北京服务网,网页游戏排行榜2023,wordpress主题用不了设计模式#xff08;创建型#xff09;—— 建造者模式
这是一个学生类#xff0c;它有四个属性#xff0c;通过构造方法创建它的对象#xff0c;我们需要填入四个参数#xff0c;这就导致创建对象的代码有点长#xff08;如果他有更多属性时#xff0c;那会更加恐怖创建型—— 建造者模式
这是一个学生类它有四个属性通过构造方法创建它的对象我们需要填入四个参数这就导致创建对象的代码有点长如果他有更多属性时那会更加恐怖这看起来不太优雅
public class Student {public int id;public int age;public int grade;public String name;public Student(int id, int age, int grade, String name) {this.id id;this.age age;this.grade grade;this.name name;}
}在之前我们学习过通过StringBuilder来创建一个字符串它就像一个建造者可以这个字符串对象中不断添加、删除、修改最终得到一个字符串对象参考这种方法我们是不是也可以设计一个创建学生对象的建造者学生类的内部类
public static class StudentBuilder {int id;int age;int grade;String name;public StudentBuilder id(int id) {this.id id;return this;}public StudentBuilder age(int age) {this.age age;return this;}public StudentBuilder grade(int grade) {this.grade grade;return this;}public StudentBuilder name(String name) {this.name name;return this;}public Student build() {return new Student(id, age, grade, name);}}通过一个静态方法来获取建造者对象 //获取建造者
public static StudentBuilder builder() {return new StudentBuilder();
}这样一来我们就可以通过这样一种方式得到一个对象
Student student Student.builder().id(1).age(16).grade(9).name(张三).build();
System.out.println(student);这看起来优雅多了当然如果这个类只有两三个简单的属性我们依然可以采用最原始的构造方法来创建建造者模式的优雅在属性特别多时才能很好的体现