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可以代替上面的类的创建。

相关推荐
也些宝33 分钟前
Java单例模式:饿汉、懒汉、DCL三种实现及最佳实践
java
阿星AI工作室41 分钟前
给openclaw龙虾造了间像素办公室!实时看它写代码、摸鱼、修bug、写日报,太可爱了吧!
前端·人工智能·设计模式
Nyarlathotep01131 小时前
SpringBoot Starter的用法以及原理
java·spring boot
wuwen51 小时前
WebFlux + Lettuce Reactive 中 SkyWalking 链路上下文丢失的修复实践
java
SimonKing1 小时前
GitHub 10万星的OpenCode,正在悄悄改变我们的工作流
java·后端·程序员
Seven972 小时前
虚拟线程深度解析:轻量并发编程的未来趋势
java
雨中飘荡的记忆12 小时前
ElasticJob分布式调度从入门到实战
java·后端
_哆啦A梦20 小时前
Vibe Coding 全栈专业名词清单|设计模式·基础篇(创建型+结构型核心名词)
前端·设计模式·vibecoding
考虑考虑21 小时前
JDK25模块导入声明
java·后端·java ee