贯穿设计模式-建造者模式+代理模式+原型模式

样例代码

涉及到的项目样例代码均可以从https://github.com/WeiXiao-Hyy/Design-Patterns.git获取

需求

  1. 个人或公司需要开发票时,会有个人发票和企业发票的区别 -> 建造者模式;
  2. 不同业务部门可能都需要使用发票数据,需要拷贝同一份发票 -> 原型模式;
  3. 构造出来的发票建造者方式,需要进行方法增强(例如:银行卡号校验,信息是否合格等等)-> 代理模式;

建造者模式

将不同的组件进行组装,最终生成一个最终的对象。与工厂模式的区别:

  1. 工厂模式和建造者模式都是为了建造对象;
  2. 工厂模式重在结果,只要能够建造对象即可;建造者模式重在构件过程,需要关心如何将不同的信息组装成一个完整的对象;

原型模式

在Java语言中,比较简单,常用的两个方法如下:

  • 实现Cloneable接口重写clone方法即可
  • 实现Serializable序列化

需要区分一下引用拷贝,浅拷贝,深拷贝的区别。

代理模式

一般来对现有方法的增强。

上述是静态代理的UML图,在实战中也需要注意掌握JDK和CGLIB动态代理的原理和适用场景。

相关推荐
快乐的划水a12 小时前
建造者模式及优化
设计模式·建造者模式
源代码•宸13 小时前
深入浅出设计模式——创建型模式之建造者模式 Builder
c++·经验分享·设计模式·建造者模式
DKPT13 小时前
Java设计模式之行为型模式(解释器模式)实现方式详解
java·笔记·学习·设计模式·解释器模式
pointers_syc13 小时前
【设计模式】 原则
设计模式
是2的10次方啊14 小时前
🎭 创建型设计模式:对象诞生的艺术与智慧
设计模式
Techie峰16 小时前
【Java23种设计模式】:模板方法模式
java·设计模式·模板方法模式
找不到、了1 天前
Java设计模式之<建造者模式>
java·设计模式·建造者模式
LoveC5211 天前
设计模式之适配器模式
设计模式·适配器模式
永卿0011 天前
设计模式-责任链模式
java·设计模式·责任链模式
Codebee2 天前
OneCode 3.0 智能数据处理:快速视图中的智能分页与 @PageBar 注解详解
后端·设计模式