知识卡片
七种分解策略总览
内容
把系统拆成模块或组件有七种常见策略:功能(把相关功能聚在一起,最直观,多数场景不冲突质量属性)、典型类型(识别领域中独立存在、很少主动关联别的类型的核心概念,如联系人、广告)、架构风格(组件即风格定义的元素,如管道-过滤器的过滤器和管道,与质量属性直接绑定)、质量属性驱动设计ADD(先定架构驱动元素,再用”质量属性→策略”匹配表选设计)、端口(每个端口配一个对应组件,适合按访问权限或服务级别切分)、正交抽象(把问题转换到另一个更成熟的领域,借用那里现成的抽象和算法)、智力拼图(手头已有若干可复用部件,设计就是把它们拼起来、缺的地方补新代码)。多数系统无论选哪种都可行,但选一个和质量属性要求对齐的策略会让工作省力得多。
结构图:
flowchart TD
A[七种分解策略] --> B[功能:相关功能聚合]
A --> C[典型类型:领域核心独立概念]
A --> D[架构风格:风格定义的元素]
A --> E[质量属性ADD:属性→策略匹配表]
A --> F[端口:按端口配对应组件]
A --> G[正交抽象:借用其他领域的成熟抽象]
A --> H[智力拼图:拼装已有可复用部件]
参考来源
- 位置:《恰如其分的软件架构》第11章《封装和分割》11.3节《分解策略》11.3.1-11.3.8小节(源文件:_epub-src/OEBPS/text00108.html)
- 结论依据:原文逐一介绍功能、典型类型、架构风格、质量属性驱动设计(ADD)、端口、正交抽象、智力拼图七种分解策略,并说明选择与质量属性要求对齐的策略能让工作更容易。
- 原始内容:分解策略总结在表11.1中……有一种模式正在浮出水面。其中,一些方法选择了一个架构元素作为主关切:质量属性、功能、架构风格及端口……选择问题域的正交抽象可能是最好的;而另一些时候,人们很想重用现有的COTS组件。