爱淋雨的鼬先生
2018 年注册,2025 年重拾创作,不忘初心,砥砺前行,有些东西会设置 VIP 可见,并保证能提供一些价值,但是大多都是开源,喜欢请关注博主,谢谢~
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
行为型模式:状态模式
本文介绍了使用状态模式解决 App 抽奖活动的设计实现。抽奖活动包含四种状态:不能抽奖、可以抽奖、发放奖品和奖品领完,通过状态模式实现不同状态下的行为转换。核心代码定义了抽象状态类和四个具体状态类,每个类实现扣除积分、抽奖和发放奖品等行为。RaffleActivity 作为环境角色维护当前状态,实现状态间的转换。该设计模式有效解决了对象在不同状态下行为变化的问题,使状态转换逻辑清晰且易于扩展。原创 2026-01-07 22:02:09 · 2 阅读 · 0 评论 -
设计模式介绍
本文介绍了设计模式的核心概念及其重要性。主要内容包括:1、原型设计模式的面试题解析2、七大设计原则3、金融借贷平台项目的状态模式设计案例4、单例模式的 8 种实现方式比较5、设计模式在软件工程中的关键地位,强调其能提高代码可维护性、应对需求变更,是成为合格工程师的必备技能文章通过具体案例和问题分析,展示了设计模式解决复杂软件设计问题的实际价值。原创 2025-10-09 20:09:22 · 186 阅读 · 0 评论 -
设计原则详解
设计模式原则详解...原创 2025-10-12 18:26:36 · 470 阅读 · 0 评论 -
UML 介绍
UML【统一建模语言】是用于软件系统分析与设计的标准化工具,通过符号描述类、接口及其关系【依赖、继承、组合等】。常用工具有 Rational Rose、Mermaid 等。UML 图分为静态结构图【如类图】和动态行为图【如时序图】,其中类图是核心,展示类之间的依赖、关联、聚合等关系。示例通过 Java 代码和 Mermaid 图展示了类图的绘制方法,并详细解析了依赖关系【如 PersonServiceBean 依赖 PersonDao 等类】。类图是设计模式分析的重要工具。原创 2025-10-21 20:51:28 · 705 阅读 · 0 评论 -
设计模式概述
设计模式是程序员在面对同类软件工程设计问题所总结出来的有用的经验,模式不是代码,而是某类问题的通用解决方案,设计模式【Design Pattern】代表了最佳的实践。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。设计模式的本质提高软件的维护性,通用性和扩展性,并降低软件的复杂度。《设计模式》是经典的书,作者是 Erich Gamma、Richard Helm、RalphJohnson 和 John Vlissides Design【俗称“四人组 GOF”】。原创 2025-10-15 21:32:34 · 478 阅读 · 0 评论 -
创建型设计模式:单例模式
介绍了单例模式的多种实现路径~原创 2025-10-26 15:43:07 · 367 阅读 · 0 评论 -
创建型设计模式:工厂模式
本文介绍了简单工厂模式的设计与实现。通过披萨订购系统的案例,对比传统方式与简单工厂模式的区别。传统方式虽然直观,但违反了开闭原则,每次新增披萨类型都需要修改多处代码。而简单工厂模式将对象创建逻辑封装到一个工厂类中,当需要新增披萨类型时只需修改工厂类,其他代码无需变动,提高了扩展性和维护性。文中详细展示了抽象 Pizza 类、具体 Pizza 子类【奶酪、希腊、胡椒披萨】以及订单处理的代码实现,并配以 UML 类图说明设计思路。该模式适用于需要集中管理对象创建的场景。原创 2025-10-26 16:02:31 · 327 阅读 · 0 评论 -
创建型设计模式:原型模式
本文介绍了使用原型模式解决克隆羊问题的实现方法。传统方式通过新建对象并逐一复制属性,效率较低且不够灵活。原型模式通过实现 Cloneable 接口并重写 clone () 方法,能够高效地创建对象副本。文章展示了原型模式的结构原理图,并用代码示例演示了如何克隆 Sheep 对象。此外,还分析了 Spring 框架中原型模式的应用场景,如 prototype 作用域的 Bean 创建。通过原型模式,可以动态获取对象运行时的状态,提高程序效率和扩展性。原创 2025-10-28 21:31:34 · 989 阅读 · 0 评论 -
创建型设计模式:建造者模式
本文介绍了建造者模式在盖房子需求中的应用。传统方式通过抽象类和继承实现,但存在耦合性高、扩展性差的问题。建造者模式将产品和建造过程解耦,包含产品、抽象建造者、具体建造者和指挥者四个角色。代码实现中,House 类封装产品属性,HouseBuilder 抽象类定义建造流程,CommonHouse 和 HighBuilding 实现具体建造过程,HouseDirector 指挥者控制流程执行。该模式提升了程序的扩展性和维护性,适用于复杂对象的创建场景。原创 2025-11-09 19:46:29 · 476 阅读 · 0 评论 -
行为型模式:模板方法模式
本文介绍了使用模板方法模式解决豆浆制作问题的过程。通过定义抽象类 SoyaMilk 实现制作流程的固定步骤【选材、浸泡、打碎】,将添加配料步骤作为抽象方法由子类实现。采用钩子方法 customWantCondiment () 扩展功能,支持制作纯豆浆。该模式实现了算法骨架的复用,同时允许子类灵活定制特定步骤,体现了好莱坞原则的思想。代码示例展示了红豆豆浆、花生豆浆和纯豆浆的具体实现,验证了模板方法模式在流程固定但部分步骤可变场景下的适用性。原创 2025-11-20 20:49:05 · 163 阅读 · 0 评论 -
行为型模式:命令模式
本文介绍了命令模式在智能家居项目中的应用。通过命令模式可以将动作请求者【手机 App】与动作执行者【家电设备】解耦,实现统一控制。文章详细阐述了命令模式的原理、角色职责【Invoker、Command、Receiver 等】以及具体实现方案,包括命令控制器、命令接口、空命令、电灯命令接收器和具体命令类等核心代码实现。该模式支持撤销操作,使得智能家居系统更加灵活可扩展。原创 2025-11-22 20:34:00 · 363 阅读 · 0 评论 -
行为型模式:访问者模式
本文介绍了访问者模式在测评系统中的应用。传统方案存在扩展性差、违反 OCP 原则的问题。访问者模式通过将数据结构与数据操作分离,在不改变数据结构的前提下定义新操作,解决了这些问题。文章详细阐述了访问者模式的原理、角色职责,并通过实例展示了如何实现一个歌手测评系统:定义抽象访问者 Action 及其具体实现【Success、Fail、Wait】,创建人类抽象类 Human 及其子类【Man、Woman】,使用 ObjectStructure 管理对象结构,最终通过双分派机制实现不同类型观众对歌手的不同评价。原创 2025-11-29 20:51:10 · 279 阅读 · 0 评论 -
行为型模式:迭代器模式
本文介绍了迭代器模式在展示学校院系结构中的应用。传统方案将学院作为学校的子类,系作为学院的子类,存在遍历不便的问题。迭代器模式通过提供统一的遍历接口,解决了不同集合元素的遍历问题。文章详细展示了代码实现,包括 College 接口及其实现类、Department 类以及对应的迭代器类,实现了对学校院系结构的统一遍历,避免了暴露内部结构。该设计模式有效解耦了客户端与具体聚合类的关系。原创 2025-12-08 09:30:00 · 334 阅读 · 0 评论 -
行为型模式:观察者模式
观察者模式的介绍,以及相关的代码实现案例原创 2025-12-14 11:17:35 · 138 阅读 · 0 评论 -
行为型模式:中介者模式
本文介绍了中介者模式在智能家庭系统中的应用。传统方案中电器对象相互调用导致耦合度高、扩展性差,而中介者模式通过引入中介对象解耦各组件。文章详细说明了中介者模式的原理类图,包含抽象中介者 Mediator、抽象同事类 Colleague 及其具体实现。以智能家庭项目为例,展示了闹钟、咖啡机等设备通过中介者协同工作的代码实现,包括注册、消息传递等核心方法。该模式有效降低了系统复杂度,提高了可维护性和扩展性,适用于对象间交互复杂的场景。原创 2025-12-20 12:55:03 · 117 阅读 · 0 评论 -
行为型模式:备忘录模式
本文介绍了备忘录模式在游戏角色状态恢复中的应用。传统方案通过备份对象状态存在管理困难和暴露内部细节的问题。备忘录模式通过 Originator【游戏角色】、Memento【状态备忘录】 和 Caretaker【状态管理者】 三个角色,实现了在不破坏封装性的前提下保存和恢复对象状态。代码示例展示了游戏角色攻击力和防御力的保存与恢复过程,通过 Caretaker 管理多个状态快照,提高了状态管理的效率和灵活性。该模式适用于需要保存对象历史状态的场景,如游戏存档、事务回滚等。原创 2025-12-20 13:35:15 · 136 阅读 · 0 评论 -
行为型模式:解释器模式
本文介绍了使用解释器模式实现四则运算的解决方案。针对传统方案扩展性差、结构混乱的问题,提出通过构建抽象语法树的方式解析表达式。详细讲解了解释器模式的原理,包括 Context 环境角色、抽象表达式、终结符表达式和非终结符表达式的分工协作。通过具体代码展示了如何实现变量解释器、运算符解释器及表达式计算器,最终构建可扩展的四则运算系统。该模式适用于需要解释简单语法的场景,如编译器、正则表达式等,能有效提升代码的清晰度和可维护性。原创 2025-12-26 21:49:54 · 140 阅读 · 0 评论
分享