当前位置: 首页 > news >正文

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

http://www.dtcms.com/a/362728.html

相关文章:

  • 科普:为什么在开发板上运行 Qt 程序时需要在命令后加 -platform linuxfb
  • 少儿舞蹈小程序从0到1(5):搭建关于我们页面
  • 深入浅出 RabbitMQ - SpringBoot2.X整合RabbitMQ实战
  • 23种设计模式-抽象工厂模式
  • 蓝桥杯算法之基础知识(4)
  • Mysql杂志(七)
  • Deepin25安装mysql8.4.5
  • 在ROS中获取并发布UBS式传感器的温湿度
  • PostgreSQL(1) FETCH用法
  • 企业数字安全守护神:IT运维管理系统全面解析,构建坚不可摧的防护体系
  • 简陋的RPC
  • 从代码到组件:C语言动态库(DLL)封装与使用终极指南
  • NV115NV119美光固态闪存NV129NV112
  • 加速交通云建设,移动云为我国交通强国目标提供有力支撑
  • AES-GCM和(AES-CBC+SHA2-25-HAMC组合,并且发方通过每次内容,更新iv,填序使用递增数字)算法比较
  • 系统科学核心概念辨析及其在人工智能领域的应用研究:一个整合性分析框架
  • 分布式光纤传感选型 3 问:你的场景该选 DTS、DAS 还是 BOTDA?
  • 解锁WebRTC在数字人领域的无限潜能
  • 面试问题:c++的内存管理方式,delete的使用,vector的resize和reverse,容量拓展
  • 大数据量模块设置渲染性能优化
  • 白电三巨头 2025 年战局:美的领跑破局,海尔稳健筑垒,格力承压求变
  • Spring 中 Hikari 与 Druid 的详细介绍、对比及同类组件分析
  • go-mapus最简单的离线瓦片地图协作
  • 【Linux系统】万字解析,进程间的信号
  • 并发编程——13 线程池ThreadPoolExecutor实战及其原理分析
  • md5sum -c用法详解
  • 【Vue2 ✨】Vue2 入门之旅(八):过渡与动画
  • 基础文本处理工具与文本三剑客其二sed awk
  • unity 中的 gradle building 加速(可能无用,导致包体异常)
  • 【C++详解】C++11(三) 可变参数模板、包扩展、empalce系列接⼝、新的类功能