含义:建造者模式,顾名思义,就是通过一系列的建造(set),最后建造(build)出我们想要的东西。
出现背景:编程过程中,当我们构造一个类,并为其属性进行赋值过程中,我们的做法是什么呢?构造方式注入,通过setter方式。这是我们通常使用的方式,但是,当一个类的属性很多,通过这两种方式进行注入将是很长的一串,且对于构造方式来说,每个字段的含义将变得不明确。
实例:
class Demo{
private String name;
private int age;
private String property_1;
private String property_n;
...//各个setter
}
Demo demo = new Demo();
demo.setName("csdn");
demo.setAge(18);
...
当我们面临几十个属性的bean时,将是一个很难受的赋值过程,换行、demo.**;将是之后所有属性赋值过程的操作流程。
接下来,我们的建造者就出现了。
class Demo{
private String name;
private int age;
private String property_1;
private String property_n;
...//各个setter
/**
* 建造者
*/
public static class DemoBuilder{
private Demo demo;
public DemoBuilder(){
demo = new Demo();
}
public DemoBuilder setName(String name){
this.demo.setName(name);
return this;
}
...
public Demo build(){
return demo;
}
}
}
实际使用起来是这样的:
Demo demo = new Demo.DemoBuilder()
.setName("csdn")
.setAge("18")
.setProperty_1("")
....
.build();
以上就是我们的建造者简单使用。
学习过使用spring-security的同学可能会发现,在配置http过滤权限过程中有相似的使用,没错,spring-security中就有使用建造者的典型例子,不过他是使用and()进行的方法间的链接,实现原理很简单:
public HttpSecurity and(){
return this;
}
以上就是建造者模式的简单应用,欢迎拍砖!