知识卡片

架构模式的定义与四类划分

普通读书笔记卡

内容

Dwayne E. Perry和Alexander L. Wolf从组件角度给出软件架构模式的定义:根据系统的结构组织定义了软件系统族,以及构成系统族的组件之间的关系,通过组件应用的限制和组件的组织与设计规则来确定和表现——它代表模式系统中的最高等级模式,确定了应用的基本结构,并在后期每个开发活动中都要遵循这个结构。这个定义呼应了[[架构风格与架构模式的本质区别]]中”模式是问题-解决方案对”的判断标准:模式不只是一种组织形式,更携带了”必须遵循”这一约束力。Frank Buschmann等人按”是否有助于支持相似属性”,把软件架构模式分成四大类:从混沌到结构类(解决系统缺乏清晰组织结构的问题),代表模式有分层模式、管道-过滤器模式、黑板模式;分布式系统类(解决跨进程/跨机器协作的问题),代表模式有代理者(broker)模式、微核(microkernel)模式、管道-过滤器模式(可见管道-过滤器同时横跨两个类别,说明分类维度和具体风格并非一一对应);交互式系统类(解决用户界面与业务逻辑分离的问题),代表模式有MVC模式、表示-抽象-控制(PAC)模式;适应性系统类(解决系统需要在运行时自我调整的问题),代表模式有反射(reflection)模式、微核模式。这个四分类的价值不在于穷尽所有模式,而在于提供了一个”先问系统面临的是哪一类结构性问题,再去对应类别里找候选模式”的检索路径——例如系统缺乏组织混乱无序时该往”从混沌到结构”类找方案,而不是盲目在20种架构风格里挑一个看起来顺眼的。

参考来源

- 位置:《软件架构理论与实践》第4章《软件架构的风格与模式》"4.4 软件架构模式"节(源文件:_epub-src/OEBPS/text00035.html) - 结论依据:原文给出Perry和Wolf的架构模式定义,并列出Buschmann"将软件架构模式主要分为4类:1)从混沌到结构……2)分布式系统……3)交互式系统……4)适应性系统"及各类代表模式,直接支撑本卡片结论。 - 原始内容:Dwayne E.Perry和Alexander L.Wolf从组件的角度给出了软件架构模式的定义:根据系统的结构组织定义了软件系统族,以及构成系统族的组件之间的关系……Frank Buschmann等按照有助于支持相似属性的模式的方式,将软件架构模式主要分为4类。