Builder 模式是一步一步创建复杂对象的创建型模式 , 它允许用户在不知道内部构建细节的情况下,可以更精细的控制对象的构造流程 。 该模式是为了将构建复杂对象的过程和它的部件解耦,使得构建过程和部件的表示隔离开来 。
简单实现
public class Computer {
String mBoard ;
String mDisplay ;
String mOs ;
private Computer(){};
public String getmBoard() {
return mBoard;
}
public Computer setmBoard(String mBoard) {
this.mBoard = mBoard;
return this ;
}
public String getmDisplay() {
return mDisplay;
}
public Computer setmDisplay(String mDisplay) {
this.mDisplay = mDisplay;
return this ;
}
public String getmOs() {
return mOs;
}
public Computer setmOs(String mOs) {
this.mOs = mOs;
return this ;
}
public static class ComputerBuilder {
private String mBoard = "default board";
private String mDisplay = "default display" ;
private String mOs = "default os";
public Computer create(){
Computer computer = new Computer() ;
computer.setmBoard(mBoard).setmDisplay(mDisplay)
.setmOs(mOs) ;
return computer ;
};
public String getmBoard() {
return mBoard;
}
public ComputerBuilder setmBoard(String mBoard) {
this.mBoard = mBoard;
return this ;
}
public String getmDisplay() {
return mDisplay;
}
public ComputerBuilder setmDisplay(String mDisplay) {
this.mDisplay = mDisplay;
return this ;
}
public String getmOs() {
return mOs;
}
public ComputerBuilder setmOs(String mOs) {
this.mOs = mOs;
return this ;
}
}
}
客户端调用
public class test {
Computer computer = new Computer.ComputerBuilder().setmBoard("saumnging")
.setmOs("mac os").create();
}
android 源码示例 AlertDialog