一、简介
建造者模式相较于工厂模式,建造者模式需要关注构建对象的过程,而工厂模式则不需要。
二、例子
1、创建需要构建对象的抽象
public class Phone{
String cpu;
String mem;
String disk;
}
2、创建建造者模式的接口
对构建对象的内容抽象
public interface AbstractPhoneBuilder<T,K> {
T customCpu(String cpu);
T customMem(String mem);
T customDisk(String disk);
K builder();
}
3、创建构建具体对象
import lombok.ToString;
@ToString
public class HuaWeiPhone extends Phone implements AbstractPhoneBuilder<HuaWeiPhone,Phone>{
private HuaWeiPhone(){};
public static HuaWeiPhone creat() {
return new HuaWeiPhone();
}
@Override
public HuaWeiPhone customCpu(String cpu) {
this.cpu = cpu;
return this;
}
@Override
public HuaWeiPhone customMem(String mem) {
this.mem = mem;
return this;
}
@Override
public HuaWeiPhone customDisk(String disk) {
this.disk = disk;
return this;
}
@Override
public Phone builder() {
//若想返回其他对象,这里可以转换
return this;
}
}
3、测试方法
@Test
public void buildTest(){
Phone phone = HuaWeiPhone.creat().customCpu("麒麟9000").customMem("12G").customDisk("512G").builder();
System.out.println(phone.toString());
}