尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

第40篇-设计模式在系统设计中的应用

第40篇-设计模式在系统设计中的应用 【软考高级·系统分析师全链路通关实战】第 40 篇设计模式在系统设计中的应用本系列定位面向有开发经验、从零备考软考高级「系统分析师」的工程师以《系统分析师教程第 2 版》为主线按「综合知识 → 案例分析 → 论文」三科组织需求工程与 UML 建模深拆60 篇带你从考试小白到三科同过。本篇你将学到GoF 23 种设计模式的三分家族总表创建型、结构型、行为型各含哪些模式必须能归类案例高频八模式精讲单例、工厂、观察者、策略、适配器、装饰器、代理、模板方法每个模式意图 结构 云诊通场景一句话大纲指定用 UML 类图表达模式衔接第 16 篇类图六关系与四段式答题模板学完本篇模块七架构设计与系统设计收官——你将从「会画架构图」进阶到「会用模式级的微结构语言」描述设计。考点热力表知识点综合知识案例分析论文23 模式三分家族归类★★★★★单例/工厂/观察者/策略★★★★★★★适配器/装饰器/代理★★★★★★模板方法★★★★★模式意图辨析给场景选模式★★★★★★★模式与类图关系表达★★★★★★一、GoF 23 模式三分家族总表《设计模式可复用面向对象软件的基础》收录 23 种模式按目的分三族家族关注点模式清单记忆版创建型5对象怎么创建单例、工厂方法、抽象工厂、建造者、原型结构型7对象怎么组合适配器、装饰器、代理、外观、组合、桥接、享元行为型11对象怎么交互、职责怎么分配观察者、策略、模板方法、命令、状态、职责链、迭代器、中介者、备忘录、访问者、解释器综合知识最常见考法给模式名问归类观察者是行为型不是创建型代理是结构型与给场景选模式下节八模式覆盖了 80% 命题面。GoF 23 模式创建型 5单例工厂方法抽象工厂建造者原型结构型 7适配器装饰器代理外观组合桥接享元行为型 11观察者策略模板方法命令状态职责链其余五种迭代器中介者备忘录访问者解释器mindmap 层级有限「其余五种」折叠记忆即可迭代器顺序访问、中介者解耦多对象网状交互、备忘录快照恢复、访问者双分派加新操作、解释器解释语言文法——综合考到频次低于八模式。二、案例高频八模式精讲2.1 单例 Singleton创建型意图保证一个类仅有一个实例并提供全局访问点结构私有构造器 静态私有实例 静态获取方法云诊通场景一句话处方编号生成器全局唯一防止并发开出重复处方号考点双重检查锁解决多线程下重复实例化2.2 工厂方法 Factory Method创建型意图定义创建对象的接口把实例化推迟到子类——调用方不 new 具体类结构Creator声明工厂方法← ConcreteCreator返回具体产品云诊通场景一句话问诊通道工厂按类型创建图文会话或视频会话通道增减不改调用代码辨析抽象工厂造产品族一次造一族相关对象工厂方法造单个产品2.3 观察者 Observer行为型意图一对多依赖对象状态变化时自动通知所有依赖者结构Subject 维护 Observer 列表notify 遍历调用 update第 35 篇事件驱动架构在类级的微缩版第 16 篇 MVC 中视图观察模型也是它云诊通场景一句话问诊会话状态一变医生端、超时计时器、审计留存多方自动收到通知类图衔接第 16 篇空心三角泛化/实现实线菱形聚合实现实现实现聚合-维护观察者列表Observer 接口 update()医生端推送审计留存器超时计时器Subject 问诊会话 attach-notify2.4 策略 Strategy行为型意图定义一族可互换的算法运行时选择——把「做什么算法」从「谁用它」剥离结构Context 持有 Strategy 接口引用具体策略实现接口云诊通场景一句话号源分配算法先到先得/按权重/预留慢病号配置切换调度逻辑零修改辨析状态模式结构与策略几乎同构但策略由调用方主动选状态由对象内部随状态自动切换2.5 适配器 Adapter结构型意图转换接口使接口不兼容的类协同工作结构Adapter 实现/继承目标接口内部包装被适配者云诊通场景一句话集成网关把 7 家医院 SOAP 通道适配为平台统一 REST 接口第 36 篇协议转换的类级实现辨析外观 Facade 是简化子系统入口提供新门面适配器是转换既有接口迁就旧接口2.6 装饰器 Decorator结构型意图动态给对象附加职责比继承更灵活的功能叠加结构Decorator 与被装饰者实现同一接口Decorator 持有并包装组件实例云诊通场景一句话处方报文发送器动态叠加「加密装饰」「签名装饰」「压缩装饰」按通道自由组合辨析代理控制访问远程/延迟/权限装饰增强功能——代理不改变接口语义装饰是功能叠加链2.7 代理 Proxy结构型意图控制对目标对象的访问远程代理、虚代理延迟创建、保护代理鉴权结构Proxy 与 RealSubject 同接口Proxy 持有引用并在前后加控制逻辑云诊通场景一句话患者病历查询经保护代理做权限校验与脱敏后才转发真实服务辨析见装饰器另记AOP/拦截器思想是代理模式的工程化推广2.8 模板方法 Template Method行为型意图父类定义算法骨架固定步骤顺序子类实现各步骤细节——「流程不变、步骤可变」结构抽象类含 final 模板方法调用若干抽象基本方法具体子类实现基本方法云诊通场景一句话审方流程骨架固定为「取处方→自动规则→人工复核→签名→留痕」各医院子类只定制规则与复核细节辨析策略是整体算法可换组合模板方法是骨架固定步骤填充继承——考过多次的对比题2.9 八模式速查表模式家族一句话判定信号云诊通一句话单例创建全局唯一实例处方编号生成器工厂方法创建不 new 具体类、延迟到子类会话通道工厂观察者行为一变多知、自动通知会话状态多方通知策略行为算法族运行时可换号源分配算法适配器结构接口转换、兼容旧接口SOAP 转 REST 网关装饰器结构功能动态叠加链报文加密签名叠加代理结构控制访问鉴权/延迟/远程病历查询保护代理模板方法行为骨架固定、步骤子类填审方流程骨架三、模式答题模板与类图表达3.1 四段式答题模板案例分析问「该场景适合什么模式、为什么」时四段作答模式名明确点名术语准确是第一采分点解决什么问题把场景痛点翻译成模式意图语言「接口不兼容」→适配器「算法频繁更换」→策略结构口述关键角色与关系谁持用谁、谁实现谁能画小类图更好收益带来的质量属性提升解耦、可扩展、复用 如需要补一句代价类数量增加3.2 模式与模块七前文的呼应设计模式是类/对象级的微结构架构风格是系统级的宏结构两者是同一「关注点分离」思想的不同尺度第 35 篇事件驱动架构的运行时骨架类级就是观察者第 36 篇集成网关的协议转换类级就是适配器加装饰器链第 37 篇服务清单里 supervision-service 的重试补偿类级是模板方法骨架固定组装→发送→验回执→补偿。论文写设计章节时用「宏结构指风格、微结构指模式」双层叙述深度立现。真题风格自测题1. GoF 23 种设计模式按目的分为三族观察者模式属于 。A. 创建型 B. 结构型 C. 行为型 D. 交互型2. 下列全属于创建型模式的一组是 。A. 单例、工厂方法、抽象工厂、建造者、原型 B. 适配器、装饰器、代理 C. 观察者、策略、命令 D. 组合、外观、桥接3. 保证一个类仅有一个实例并提供全局访问点的是 。A. 单例 B. 建造者 C. 享元 D. 外观4. 定义创建对象的接口、把实例化推迟到子类的是 。A. 工厂方法 B. 模板方法 C. 原型 D. 代理5. 一对多依赖关系、状态变化时自动通知所有依赖对象的是 。A. 观察者 B. 中介者 C. 职责链 D. 迭代器6. 把一族可互换算法封装起来、运行时选择使用的是 。A. 策略 B. 状态 C. 命令 D. 备忘录7. 将一个类的接口转换成客户期望的另一个接口使不兼容类协同工作的是 。A. 适配器 B. 外观 C. 组合 D. 桥接8. 动态地给对象附加额外职责、功能可叠加的是 。A. 装饰器 B. 代理 C. 享元 D. 适配器9. 控制对目标对象的访问、可承担鉴权与延迟创建职责的是 。A. 代理 B. 装饰器 C. 外观 D. 组合10. 父类定义算法骨架、子类实现各步骤的是 。A. 模板方法 B. 策略 C. 状态 D. 命令11. 代理与装饰器结构相似本质区别是 。A. 代理控制访问装饰器动态叠加功能 B. 装饰器不能加接口 C. 代理必须远程 D. 无区别12. 抽象工厂与工厂方法的区别正确的说法是 。A. 抽象工厂创建产品族一族相关对象工厂方法创建单个产品 B. 完全相同 C. 工厂方法不返回对象 D. 抽象工厂只能造一个对象13. 云诊通集成网关将医院 SOAP 通道转换为统一 REST 接口最贴切的模式类比是 。A. 适配器 B. 单例 C. 观察者 D. 模板方法14. 策略模式与状态模式的辨析正确的是 。A. 两者结构不同 B. 策略由调用方主动选择算法状态由对象内部随状态自动切换 C. 状态模式属创建型 D. 策略模式不能更换算法15. 案例题问「该场景适合什么模式并说明理由」最完整的作答结构是 。A. 只写模式名 B. 模式名解决什么问题结构收益必要时补代价四段 C. 只画图不解释 D. 列举全部 23 个模式参考答案1.C 2.A 3.A 4.A 5.A 6.A 7.A 8.A 9.A 10.A 11.A 12.A 13.A 14.B 15.B第 7/8/9 题合记转接口→适配器、叠功能→装饰器、控访问→代理本篇小结知识点核心内容三分家族创建型 5怎么建、结构型 7怎么组合、行为型 11怎么交互八模式判定信号唯一实例→单例延迟实例化→工厂一变多知→观察者换算法→策略转接口→适配器叠功能→装饰器控访问→代理骨架固定→模板方法易混辨析代理 vs 装饰器控制 vs 增强策略 vs 状态主动选 vs 自动切工厂方法 vs 抽象工厂单产品 vs 产品族适配器 vs 外观转换 vs 简化类图表达观察者Subject 聚合 Observer实现用虚线三角聚合用实线菱形第 16 篇六关系答题四段式模式名→解决什么问题→结构→收益代价宏微呼应架构风格是系统级宏结构设计模式是类级微结构同一关注点分离思想的两个尺度模块七收官34 总论视图→35 风格论证→36 SOA 与集成→37 微服务拆分→38 概要与模块→39 详细与接口→40 模式微结构下篇预告第 41 篇软件实现——程序设计语言与编码规范考点进入模块八编译与解释、强类型弱类型、第四代语言等语言特性判定编码规范与静态分析持续集成与云诊通技术选型论证论文素材。如果本篇内容对你有帮助欢迎点赞收藏有任何疑问欢迎在评论区交流。
返回列表