设计模式
文章平均质量分 94
Hardy Army
不学习,脑子就会僵化。不拼搏,人生就会固化。
展开
-
构造者模式的实现
构造者模式允许你一步步地构建一个复杂的对象,而不是一次性地创建它。这样做的好处是,你可以灵活地调整对象的各个部分,而不需要为每一种可能的组合都创建一个新的类。就像是在蟹堡王定制蟹黄堡一样,你可以根据自己的需求,让小海绵一步步地构建出你想要的汉堡。这样既灵活又有趣,不是吗?原创 2024-07-13 18:35:09 · 1010 阅读 · 0 评论 -
观察者模式的实现
在现代战争中,通信是胜利的关键。正如中华人民共和国国防部所述,“信息力以网络、数据、算法、算力等为底层支撑,在现代战争中不断推动感知、决策、指控等各环节产生量变与质变” 。在软件架构中,观察者模式扮演着类似的角色,它是确保信息在系统中高效、准确地流动的“通信兵”。原创 2024-07-11 22:01:07 · 1129 阅读 · 1 评论 -
模板方法模式的实现
之前做过一个交易管理系统,其中有一个核心模块是“交易流程管理”,该模块需要处理不同类型的交易,比如期货交易、期权交易和股票交易。在构建交易管理系统的过程中,我们面临了一个核心挑战:如何高效地管理不同类型的交易流程?虽然这些交易类型在流程上存在差异,但它们的核心步骤却惊人地相似。如果为每一种交易类型都独立编写一套实现逻辑,不仅会增加工作量,还会导致代码冗余和维护难度的增加。原创 2024-07-10 23:18:55 · 710 阅读 · 1 评论 -
策略模式的实现
策略模式就像是在餐厅点餐的过程。假设你和朋友一起去餐厅,你们可以根据自己的口味选择不同的菜肴。你可以点披萨,你的朋友可以点汉堡,而另一位朋友可以点沙拉。每个人都可以根据自己的喜好选择不同的策略(菜肴),但最终都能满足吃东西的需求。原创 2024-07-10 22:42:03 · 1031 阅读 · 0 评论 -
代理模式的实现
代理模式就像是生活中的中介或代理人,他们代表我们处理一些事务,让我们能够更方便、更高效地完成任务。想象一下,你想要买一套房子,但你没有时间或者不熟悉购房流程,这时候你可能会找一个房产中介来帮你处理这些事情。房产中介就是这个场景中的“代理”,而你则是“客户端”,房子和卖家则是“真实对象”。原创 2024-07-06 17:00:22 · 847 阅读 · 0 评论 -
抽象工厂实现流程(二)
Data @ApiModel(value = "DemandRecordBO" , description = "需求记录统一转换入参") public class DemandRecordBO {/*** 单据类型:根据具体业务定义枚举值/*** 单据编号/*** 零件编号/*** 零件名称/*** 需求数/*** 零件行号/*** 无效/ 有效 标识(eg: 0. 无效;1. 有效)/*** 创建人姓名/*** 更新人姓名/*** 创建时间。原创 2024-06-26 23:55:17 · 763 阅读 · 0 评论 -
抽象工厂实现流程
本文档将介绍我们的设计方案,包括抽象工厂的实现方式、各个组件之间的交互流程,以及如何通过这种模式提高代码复用性、降低系统耦合度,并最终实现一个更加健壮和易于维护的系统。原创 2024-06-23 12:22:34 · 957 阅读 · 0 评论 -
原型模式的实现
MapStruct 和原型模式虽然都涉及对象的复制和转换,但它们有不同的设计目的和优势。MapStruct 的理念是通过编译期生成代码,将一个对象的属性映射到另一个对象,而不是通过对象的克隆方法进行复制。MapStruct 生成的代码通过反射或直接访问来实现属性赋值,更类似于数据转换器或适配器模式。当需要进行对象间的转换和数据传输时,使用MapStruct无疑是个非常便捷的选择。而原型模式则在需要快速创建复杂对象副本时有特定的优势。原创 2024-06-30 18:59:54 · 1235 阅读 · 0 评论 -
单例模式的实现
当在应用程序中需要控制资源共享、进行配置管理和日志记录等操作时,一种常见的需求是希望通过一个全局访问点,让程序无论在哪个地方,只要能够访问到,就可以通过这个全局访问点,来获取相关实例信息。对于懒汉式单例模式,单例实例在第一次被使用时构建,延迟初始化,相对资源利用率高。如果学过Spring的小伙伴,应该清楚,Spring框架中,默认情况下管理的Bean是单例的,这也意味着Spring容器在创建和管理Bean时,每个Bean只会有一个实例,并且这个实例会被所有需要它的地方共享。:避免重复创建实例,节省资源。原创 2024-07-06 11:20:44 · 1334 阅读 · 0 评论