1:概述
建造者模式是一种设计十分简单,通俗易懂,但是真的超级超级实用的一种设计模式,几乎我们熟知的框架啊工具啊很多很多都使用了建造者模式去init实例啊什么的,小威哥希望大家都能够学起来并且大量运用在实际开发中!
2:建造者模式的使用场景
2.1:不使用建造者模式的典型案例
很多时候,我们设计了一个非常多成员变量的bean,这些成员变量初始化又有许多不同的构造组合,如下:
public class Person {
private String name;
private int age;
private String company;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public Person(String name, String company) {
this.name = name;
this.company = company;
}
//以及一大堆构造函数......
}
如果变量再多一点,组合关系再多一点,那么是不是写起来又麻烦又难看。
2.2:使用建造者模式
那么,我们就用建造者模式来改造一下
public class Person {
private String name;
private int age;
private String company;
public Person(Builder builder) {
this.name = builder.name;
this.age = builder.age;
this.company = builder.company;
}
//这里可以使用内部类,也可以另外弄一个类
public static class Builder {
private String name;
private int age;
private String company;
public Builder setName(String name) {
this.name = name;
return this;
}
public Builder setAge(int age) {
this.age = age;
return this;
}
public Builder setCompany(String company) {
this.company = company;
return this;
}
public Person build() {
return new Person(this);
}
}
}
然后我们就可以这么init这个bean了
Person.Builder builder = new Person.Builder();
Person person = builder.setName("test").setAge(5).build();
怎么样,是不是感觉似曾相识,又无比实用且酷炫。
3:总结
总的来说,不像java里面很多的过度设计的一堆又臭又重又难理解的设计模式,建造者模式真的非常轻巧灵活又实用,如果能合理使用,可以让你的代码又骚气又美观。
如果你觉得我写的不错,简单易懂的话!请给小威哥一个赞👍!