java-设计模式-5-创建型模式-建造
java-设计模式-5-创建型模式-建造
建造者(Builder)模式
创建的东西细节复杂,还必须暴露给使用者。屏蔽过程而不屏蔽细节
分析:
产品角色(Product)
抽象建造者(Builder)
具体建造者(Concrete Builder)
@Data
//产品角色
public class Phone {protected String cpu;protected String mem;protected String disk;protected String cam;
}
//抽象建造者
abstract class AbstractBuilder{Phone phone;abstract AbstractBuilder customCpu(String cpu);abstract AbstractBuilder customMem(String mem);abstract AbstractBuilder customDisk(String disk);abstract AbstractBuilder customCam(String cam);Phone getProduct(){return phone;}
}
//具体建造者
class XiaomiBuilder extends AbstractBuilder{public XiaomiBuilder(){phone = new Phone();}/*** @param cpu*/@OverrideAbstractBuilder customCpu(String cpu) {phone.cpu = cpu;return this;}@OverrideAbstractBuilder customMem(String mem) {phone.mem = mem;return this;}@OverrideAbstractBuilder customDisk(String disk) {phone.disk = disk;return this;}@OverrideAbstractBuilder customCam(String cam) {phone.cam = cam;return this;}
}
@Builder可以代替上面的类的创建。