java-设计模式-5-创建型模式-建造

java-设计模式-5-创建型模式-建造

建造者(Builder)模式

创建的东西细节复杂,还必须暴露给使用者。屏蔽过程而不屏蔽细节

分析:

产品角色(Product)

抽象建造者(Builder)

具体建造者(Concrete Builder)

java 复制代码
@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
     */
    @Override
    AbstractBuilder customCpu(String cpu) {
        phone.cpu = cpu;
        return this;
    }
    @Override
    AbstractBuilder customMem(String mem) {
        phone.mem = mem;
        return this;
    }
    @Override
    AbstractBuilder customDisk(String disk) {
        phone.disk = disk;
        return this;
    }
    @Override
    AbstractBuilder customCam(String cam) {
        phone.cam = cam;
        return this;
    }
}

@Builder可以代替上面的类的创建。

相关推荐
linweidong8 分钟前
C++ 中避免悬挂引用的企业策略有哪些?
java·jvm·c++
用户93761147581619 分钟前
并发编程三大特性
java·后端
阿在在11 分钟前
Spring 系列(二):加载 BeanDefinition 的几种方式
java·后端·spring
小当家.10519 分钟前
Maven与Gradle完整对比指南:构建工具深度解析
java·gradle·maven
neoooo26 分钟前
🍃Spring Boot 多模块项目中 Parent / BOM / Starter 的正确分工
java·后端·架构
黄金贼贼27 分钟前
2026最新java单元测试json校验器
java·单元测试·json
菜鸟的迷茫27 分钟前
为了防雪崩加了限流,结果入口先挂了
java·后端·架构
荒诞硬汉29 分钟前
数组常见算法
java·数据结构·算法
悟空码字32 分钟前
SpringBoot整合MongoDB,性能提升,优化实践
java·spring boot·后端
1***357740 分钟前
spring loC&DI 详解
java·spring·rpc