设计模式基础篇
文章平均质量分 81
三零散人
C++开发者、业余软件开发爱好者 ^_^
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
设计模式:基于《Head First 设计模式》的学习之路(四)--装饰者模式
装饰者模式是一种动态扩展对象功能的设计模式,通过包装对象而非继承来增强功能。文章以星巴克咖啡为例,分析了传统继承方式的弊端(类爆炸、维护困难),提出使用装饰者模式更灵活地组合饮料和调料。该模式通过组件(Beverage)和装饰者(CondimentDecorator)的相同接口,实现运行时任意组合(如Mocha装饰HouseBlend)。代码示例展示了如何通过嵌套装饰者(如双倍Mocha+Soy)动态计算价格,体现了对扩展开放、对修改关闭的原则。相比继承,组合方式更灵活,能轻松应对新调料需求。原创 2025-07-22 22:14:07 · 1029 阅读 · 0 评论 -
设计模式:基于《Head First 设计模式》的学习之路(三)--观察者模式
摘要:观察者模式是一种行为型设计模式,用于建立对象间一对多的依赖关系,当主题状态改变时自动通知所有观察者。本文以气象站系统为例,展示了如何应用该模式:WeatherData作为主题,多个布告板作为观察者,通过测量数据变化时自动更新显示。相比直接调用具体实现的方案,观察者模式通过抽象接口降低了耦合度,使系统更灵活可扩展。文章详细讲解了模式原理、UML类图及具体实现过程,包括主题注册/删除观察者、数据更新通知机制等,并比较了推送和拉取两种数据获取方式。该模式广泛应用于事件响应、消息推送等场景。原创 2025-06-22 22:33:53 · 992 阅读 · 0 评论 -
设计模式:基于《Head First 设计模式》的学习之路(二)--策略模式
本文探讨了鸭子游戏设计中行为管理的优化方案。最初采用继承方式导致所有子类强制继承不必要的行为(如橡皮鸭会飞),随后尝试接口实现又造成代码冗余。最终提出"策略模式"解决方案:1) 将变化的行为(飞行、叫声)抽象为独立接口;2) 创建具体行为实现类;3) 在鸭子类中组合行为对象。通过setter方法支持运行时动态修改行为,实现了"针对接口编程"和"多用组合少用继承"的设计原则。该模式有效解决了行为复用和灵活配置问题,使系统扩展更弹性且不影响现有代码。原创 2025-01-14 21:15:47 · 1666 阅读 · 0 评论 -
设计模式:基于《Head First 设计模式》的学习之路(一)--开始前
江湖充满了设计模式的传说。。。。有人说他是独孤九剑,一出手就技惊四座;有人说他是吸星大法,修炼一次受用一生;也有人说他是僻邪剑法,不得要领会遭至灾难。原创 2025-01-14 20:50:55 · 427 阅读 · 0 评论
分享