1.设计模式介绍
1.1 定义
名称 | 说明 |
---|
架构样式 | 记录系统级的结构 |
软件设计模式 | 记录软件设计解决方案的细节 |
语言惯用法 | 重现针对特定编程语言的设计问题提供的解决方案 |
2.要素
名称 | 说明 |
---|
名称 | 有意义的名称 |
场景 | 设定具体形势,动机和基本原理 |
问题 | 针对特定问题,如算法、效率、内存等 |
解决方案 | 针对特问题的解决方案描述,如设计模型/元素,协作 |
结果 | 收益和成本 |
2.1 示例
名称 | 说明 |
---|
适配器模式 | 将系统元素的接口和客户所需的形式进行适配 |
场景 | 需要把大量的异质的元素连接在一起 |
问题 | 服务接口从底层的物理数据结构和实现算法解耦; 服务应该以某种与实现技术独立的方式暴露;配器只提供转换;使用适配器不能对底层品质属性产生不良的影响。 |
解决方案 | 针对问题,提供出适配器方案,对应现实世界类似国 际电源插座。 |
结果 | (1)客户端和目标实现解耦,不影响其他实现。+ (2)目标程序可以被不同类型的客户端使用。+ (3)增加间接层,可能有效率损失。- (4)维护工作量上升。- |
3.收益
减少风险:提升生产力、标准化程度和质量、减少风险和反复
名称 | 说明 |
---|
知识库 | 模式是解决特定领域中特定类型问题的知识库 |
已验证实践的例子 | 直接可以使用,或作为指导并起到启发的作用 |
一种语言 | 通用语言,更有效沟通 |
对标准化的帮助 | 重复出现的问题标准的解决方案,提升可靠性,方案重用 |
经常改善的来源 | 大量的经验,促进架构的改善 |
促进通用性 | 好的模式通常是通用的、灵活的 |