I wrote an article on the builder mode before, and found that I didn't understand it at a glance, Khan. . . Well written low. I decided to re-write it and I will understand it at a glance. Okay, I can go directly to the code. To use it, I can directly set the format:
builder pattern class
/**
*
* 建造者模式
* 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
* */
public class BuilderPattern {
private String language;
private String name;
public BuilderPattern(Builder builder){
this.language = builder.language;
this.name = builder.name;
}
//方法逻辑
public void showInfo() {
System.out.println("name:"+name);
System.out.println("language:"+language);
}
//Builder 建造者
public static class Builder{
private String language = "";
private String name = "";
public Builder(){
}
//每次设置参数返回自己方便之后继续设置参数
public Builder setLanguage(String language){
this.language = language;
return this;
}
//每次设置参数返回自己方便之后继续设置参数
public Builder setName(String name){
this.name = name;
return this;
}
//创建BuilderPattern实例
public BuilderPattern create(){
return new BuilderPattern(this);
}
}
}
Client class
public class Client {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//使用BuilderPattern
new BuilderPattern.Builder().setLanguage("c++").create().showInfo();
new BuilderPattern.Builder().setName("java").setName("BuilderPattern").create().showInfo();
}
}
If you don't understand, run it and you'll understand