设计模式
文章平均质量分 90
讲解设计模式
UrSpecial
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
设计模式:观察者模式
本文介绍了观察者模式在UP主视频推送场景中的应用。首先展示了一个基础实现方案,指出了其扩展性不足的问题。然后详细讲解了观察者模式的概念,包含抽象观察者、具体观察者、抽象主题和具体主题四个角色。通过优化后的代码示例,演示了如何实现一个支持动态添加/移除观察者的发布-订阅系统。文章还分析了该模式符合的设计原则:开闭原则、单一职责和接口隔离原则,并列举了违反接口隔离的反例。最后指出观察者模式适用于消息发布-订阅场景,提供了良好的扩展性和灵活性。原创 2026-04-11 17:24:46 · 484 阅读 · 0 评论 -
设计模式:模板方法模式
本文介绍了模板方法模式在饮料制作场景中的应用。通过分析初始代码存在的问题(违背开闭原则),提出使用模板方法模式重构的方案。在优化后的代码中,父类Drink定义了制作饮料的固定流程(烧水、冲泡、倒入杯子、添加配料),将可变步骤(冲泡和添加配料)声明为纯虚函数由子类实现。这样既保持了流程结构的稳定性,又允许通过子类扩展新的饮料类型(如罗汉果茶)而不修改父类代码,符合开闭原则和单一职责原则。该模式适用于流程固定但具体步骤可能变化的场景。原创 2026-04-10 22:01:19 · 363 阅读 · 0 评论 -
设计模式:单例模式
本文介绍了单例模式的概念、实现方式及其应用场景。单例模式确保一个类只有一个实例,并提供全局访问点,适用于负载均衡器等需要全局唯一实例的场景。文章详细阐述了单例模式的结构和两种实现方式:饿汉式(类加载时创建实例)和懒汉式(延迟加载),并分析了各自优缺点及线程安全问题。单例模式的优点包括全局唯一性、节省资源等,但也存在扩展性差、耦合度高等缺点。最后指出单例模式适用于需要唯一实例对象的场景,是结构最简单的设计模式之一。原创 2025-09-14 21:33:53 · 1256 阅读 · 0 评论 -
设计模式:策略模式
本文介绍了使用策略模式优化影院售票系统中电影票折扣计算的方法。原系统直接将不同用户类型的折扣算法硬编码在MovieTicket类中,违反了开闭原则且耦合度高。通过引入AbstractDiscount抽象类和具体折扣子类(如StudentDiscount、VipDiscount等),将折扣算法封装为独立策略。优化后的MovieTicket类通过组合方式调用折扣策略,实现了算法与业务逻辑的解耦。策略模式的优点包括支持扩展不修改、降低耦合度,但也存在客户端需了解所有策略类、增加类数量的缺点。原创 2025-09-14 12:36:11 · 1229 阅读 · 0 评论 -
设计模式:建造者模式
本文介绍了建造者设计模式(Builder Pattern),通过汽车制造案例阐释其核心思想。建造者模式将复杂对象的构建过程与表示分离,包括产品类、抽象建造者、具体建造者和指挥者四个角色。文中提供了C++代码示例,展示如何构建不同品牌和颜色的汽车。该模式优点在于解耦产品创建过程、便于扩展建造者,但缺点是不适合差异大的产品且可能导致类膨胀。文章最后用电影制作比喻生动说明了建造者模式的工作原理,强调其对复杂对象构建过程的封装优势。原创 2025-09-01 22:41:54 · 954 阅读 · 0 评论 -
设计模式:责任链模式
摘要:责任链模式通过将请求发送者与接收者解耦,使多个对象能依次处理请求。文章以请假审批为例,说明该模式的应用场景,区分纯(单处理器处理)与不纯(多处理器协作)两种实现方式,并通过文本处理(去除空格+转大写)的代码示例展示具体实现。分析其优点(灵活扩展、符合开闭原则)与缺点(可能遗漏处理、性能损耗),最终强调该模式在流水线式请求处理中的价值。全文约150字。原创 2025-08-25 01:11:16 · 671 阅读 · 0 评论
分享