设计模式
文章平均质量分 92
Ytadpole
我是阿羊,我为自己袋盐。。。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
揭秘设计模式:一个转接头,竟然能让你的代码更优雅?聊聊适配器模式
本文介绍了适配器模式(Adapter Pattern)在软件开发中的应用。适配器模式通过将不兼容的接口转换成统一的目标接口,使原本无法协同工作的类能够无缝协作。文章以音频播放器为例,展示了如何使用适配器将WAV播放器适配到统一的媒体播放接口中,并分析了该模式在Spring框架中的实际应用。适配器模式的优势包括实现开闭原则、责任分离和新老系统无缝对接,是解决接口不兼容问题的优雅方案。原创 2025-09-09 12:09:25 · 319 阅读 · 0 评论 -
揭秘设计模式:工厂模式的五级进化之路
工厂模式是软件开发中解决对象创建问题的关键设计模式,其进化历程分为五个层级:0级硬编码直接new对象,导致代码臃肿难维护;1级简单工厂通过专门类管理对象创建,但工厂会随产品增多而膨胀;2级工厂方法为每个产品创建专属工厂,提高了扩展性但增加了类数量;3级抽象工厂能创建整套相关产品,适合套餐类需求但扩展性受限;4级注册式工厂通过中央注册中心动态管理工厂,实现彻底解耦,代表如Spring的IoC容器。该模式在支付系统、GUI开发等场景广泛应用,是构建可扩展系统的利器。原创 2025-09-08 23:15:00 · 876 阅读 · 0 评论 -
解密设计模式:别再被内存问题困扰了!聊聊你可能忽略的“享元模式”
设计模式中的享元模式是一种优化内存使用的精妙方案,它通过分离对象的内在状态(共享部分)和外在状态(独有部分)来大幅减少内存消耗。文章通过游戏开发和Java字符串常量池两个实例,生动展示了享元模式的实际价值,并提供了完整的Java代码实现,包括享元接口、享元类、享元工厂和客户端调用。同时,文章还澄清了享元模式与单例模式的区别,前者关注共享相似对象的内存,后者保证全局唯一性。享元模式的核心思想是"分治",将复杂问题分解为可共享和不可共享的部分,从而实现高效复用。原创 2025-09-04 23:30:00 · 661 阅读 · 0 评论 -
揭秘设计模式:优雅地为复杂对象结构增添新功能-访问者模式
访问者模式是一种行为型设计模式,它允许在不修改对象结构的前提下为其添加新的操作。通过将数据结构与操作逻辑分离,访问者模式完美解决了传统方法中因类型判断导致的代码臃肿问题。该模式利用双分派机制,在元素类中定义accept方法接收访问者对象,再由访问者实现针对不同元素的具体操作。当需要新增功能时,只需创建新的访问者类即可,无需修改现有元素类,符合开闭原则。典型的应用场景包括文档处理、编译器设计等需要处理复杂对象结构的系统。原创 2025-09-03 21:45:00 · 856 阅读 · 0 评论 -
揭密设计模式:像搭乐高一样构建功能的装饰器模式
装饰器模式是一种动态扩展对象功能的设计模式,通过组合而非继承的方式为对象添加新职责。核心思想是定义一个统一接口,基础对象和装饰器都实现该接口,装饰器持有基础对象的引用并增强其功能。以咖啡店为例,基础黑咖啡可被牛奶、糖等装饰器动态组合,灵活添加新功能而不修改原有代码。该模式符合开闭原则,避免子类爆炸,广泛应用于Java I/O流、Spring AOP等场景。关键优势在于运行时动态组合功能,增强代码可维护性和扩展性。原创 2025-09-02 22:00:00 · 748 阅读 · 0 评论 -
揭秘设计模式:从UI按钮到Spring事件的观察者模式
观察者模式是一种行为型设计模式,它定义对象间的一对多依赖关系,当被观察者状态改变时,所有依赖它的观察者会自动收到通知并更新。该模式包含三个核心角色:观察者接口(定义更新方法)、被观察者(管理观察者列表和通知机制)和具体实现类。通过Java代码示例展示了如何实现UI按钮点击事件的解耦,使业务逻辑与UI逻辑分离。观察者模式广泛应用于事件处理系统,如Spring事件机制,能有效降低组件间的耦合度,提升系统灵活性和可扩展性。典型应用场景包括UI事件监听、消息通知系统等需要松耦合通信的场景。原创 2025-09-01 20:15:00 · 631 阅读 · 0 评论 -
深入理解解释器模式:构建可扩展的语言解释器
讨了解释器模式(Interpreter Pattern),一种行为型设计模式。文章首先通过一个简单的数学表达式求值示例,阐述了其核心思想:将语言的文法规则定义为一系列类,并构建一棵语法树来解释和执行表达式。文章详细解析了该模式的四大核心角色:抽象表达式、终结符表达式、非终结符表达式和上下文。接着,通过对比组合模式和责任链模式,文章清晰地辨析了解释器模式在结构和行为上的独特之处,强调了其**“自由组装”和递归处理**的特性。原创 2025-08-29 09:20:55 · 671 阅读 · 0 评论 -
代理模式
代理模式以下是个人知识储备有限,理解有限,大牛勿喷。 代理模式就我们生活中的代理服务,火车票代售处一样,能够提供原本服务器或火车站原本的功能,同时提供一些额外的服务。下面举出一个场景,虽然场景不是很好,用 车和售票处这些会比较好理解。 但是学习其中的本质就好了。脱离场景学习本质,能够不用根据场景去思考代码的存在意义,而不是机械的照搬,这才是学会了。同时一个设计模式的来源又...原创 2018-02-17 16:06:28 · 1198 阅读 · 0 评论
分享