上面是标准的builder模式uml类图,一般都不会使用到。
实际用到就是多参数的构建,下面按照2个参数举例。
package builder;
public class Computer {
private String cpu;
private String mouse;
private Computer(){}
public static class Builder{
final Computer computer = new Computer();
public Builder(){
}
public Builder cpu(String cpu){
computer.cpu = cpu;
return this;
}
public Builder mouse(String mouse){
computer.mouse = mouse;
return this;
}
public Computer builder(){
return computer;
}
}
}
Computer computer = new Computer.Builder().cpu("i9").mouse("双飞燕").builder();
如果有必填参数
package builder;
public class Computer {
private String cpu;
private String mouse;
private Computer(){}
public static class Builder{
final Computer computer = new Computer();
public Builder(String cpu){
computer.cpu = cpu;
}
public Builder mouse(String mouse){
computer.mouse = mouse;
return this;
}
public Computer builder(){
return computer;
}
}
}
Computer computer = new Computer.Builder("amd").mouse("双飞燕").builder();