文章中如果有图看不到,可以点这里去 csdn 看看。从那边导过来的,文章太多,没法一篇篇修改好。
上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 21 下一页
摘要: 前言 在软件工程的世界里,我们常常会面临一个核心挑战:如何构建一个既能够满足当下复杂业务需求,又能在未来岁月中从容应对变化和扩展的系统? 我们编写的不仅仅是能够运行的代码,更应该是清晰、灵活、可维护、可复用的代码。正是在这种对软件设计质量的永恒追求中,设计模式(Design Patterns) 应运 阅读全文
posted @ 2025-08-30 00:36 NeoLshu 阅读(22) 评论(0) 推荐(0)
摘要: 1. 设计模式对比与选择指南 相似模式的区别与适用场景 理解相似模式之间的微妙差别是正确选择的关键。以下是一些常见易混淆模式的对比: 模式对核心区别适用场景策略 (Strategy) vs 状态 (State)意图不同:策略是主动选择算法,客户端明确知道不同策略的存在;状态是被动响应,状态转换由内部 阅读全文
posted @ 2025-08-30 00:22 NeoLshu 阅读(3) 评论(0) 推荐(0)
摘要: 访问者模式详解 一、访问者模式介绍 访问者模式是一种行为型设计模式,它允许你将算法与对象结构分离。该模式的核心思想是:定义不改变对象结构的情况下操作结构中元素的新操作。 访问者模式解决了以下关键问题: 当需要在不修改现有类的前提下向类层次结构添加新功能当对象结构包含许多不同类型的对象,需要对这些对象 阅读全文
posted @ 2025-08-30 00:21 NeoLshu 阅读(4) 评论(0) 推荐(0)
摘要: 一、模板方法模式介绍 在软件开发中,经常会遇到一个场景:多个算法或流程在整体步骤上是相同的,但在某些具体的实现细节上有所不同。例如,数据导出流程可能都包含“准备数据”、“格式化数据”、“写入输出”等步骤,但导出到PDF和导出到CSV的“格式化数据”和“写入输出”步骤的实现完全不同。 如果为每种情况都 阅读全文
posted @ 2025-08-30 00:21 NeoLshu 阅读(5) 评论(0) 推荐(0)
摘要: 一、策略模式介绍 在软件开发中,我们经常需要根据不同的上下文或条件执行不同的算法或业务规则。例如,一个电商系统可能需要支持多种支付方式(支付宝、微信支付、信用卡)、多种折扣策略(满减、百分比折扣、无折扣)或多种排序算法(按价格、按销量、按评分)。 一种直观但笨拙的实现方式是使用条件语句(if-els 阅读全文
posted @ 2025-08-30 00:20 NeoLshu 阅读(4) 评论(0) 推荐(0)
摘要: 一、状态模式介绍 在软件开发中,经常会遇到对象的行为依赖于其内部状态的情况。一个典型的例子是订单系统:订单可能有“未支付”、“已支付”、“已发货”、“已完成”、“已取消”等状态。订单的可用操作(如支付、发货、确认收货、取消)以及这些操作的结果,都取决于订单当前所处的状态。 一种直观的实现方式是在对象 阅读全文
posted @ 2025-08-30 00:20 NeoLshu 阅读(2) 评论(0) 推荐(0)
摘要: 一、观察者模式介绍 在软件系统中,经常存在这样的场景:一个对象(目标对象)的状态发生改变,需要通知到其他多个对象(观察者对象),并让它们做出相应的响应。例如,用户点击一个按钮(目标),需要通知事件处理器(观察者);商品价格发生变化(目标),需要通知所有关注该商品的用户(观察者)。 如果让目标对象直接 阅读全文
posted @ 2025-08-30 00:20 NeoLshu 阅读(6) 评论(0) 推荐(0)
摘要: 一、备忘录模式介绍 在软件开发中,经常需要实现一些需要状态回滚的功能,例如: 撤销 (Undo) 和 重做 (Redo) 操作。游戏存档和读档。事务 (Transaction) 操作中的回滚 (Rollback)。浏览器会话恢复。 直接让外部对象访问并保存一个对象的内部状态,会严重破坏该对象的封装性 阅读全文
posted @ 2025-08-30 00:20 NeoLshu 阅读(6) 评论(0) 推荐(0)
摘要: 一、中介者模式介绍 在复杂的软件系统中,经常存在大量对象之间相互通信和调用的关系。如果每个对象都直接持有并调用其他多个对象的引用,会形成一个网状耦合结构。这种结构会导致: 系统难以理解和维护: 对象间的依赖关系错综复杂。可复用性差: 对象因为它与其他对象紧密耦合而无法被单独重用。难以扩展: 任何变更 阅读全文
posted @ 2025-08-30 00:19 NeoLshu 阅读(4) 评论(0) 推荐(0)
摘要: 一、迭代器模式介绍 在软件系统中,我们经常需要处理各种集合对象(如列表、树、图等)。这些集合的内部数据结构可能千差万别(数组、链表、哈希表、树),遍历它们的算法也随之不同。 如果客户端代码直接依赖这些集合的具体实现来进行遍历,会产生两个严重问题: 客户端代码与具体集合类高度耦合: 一旦需要更换集合类 阅读全文
posted @ 2025-08-30 00:19 NeoLshu 阅读(5) 评论(0) 推荐(0)
上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 21 下一页