建筑模式和建筑风格之间有什么区别?
-
08-10-2019 - |
题
在 软件体系结构 - 基础,理论和实践, ,我可以找到两者的定义。问题是,我没有得到每个人的含义,简单的英语是什么:
建筑模式
建筑模式是命名的建筑设计决策集合,适用于重复出现的设计问题,以说明出现该问题的不同软件开发环境。
建筑风格
建筑风格是(1)适用于给定开发环境中的建筑设计决策的命名集合,(2)约束在该背景下特定系统的建筑设计决策,以及(3)在每种情况下都具有有益的质量结果系统。
每个人是什么意思,它们之间有什么区别?
解决方案
建筑模式是解决反复出现的建筑问题的一种方式。例如,MVC解决了将UI与模型分开的问题。传感器控制器 - 传动器是一种模式,它将帮助您面对几种输入感官的动态问题。
另一方面,建筑风格只是重复建筑设计的名称。与模式相反,“解决”问题并不存在。
管道和过滤器无法解决任何特定的问题,这只是组织代码的一种方式。客户端 /服务器,主要程序和子例程和抽象数据类型 / OO,相同。
此外,单个体系结构可以包含几种架构样式,每种体系结构风格都可以利用几种架构模式。
其他提示
坦白说,我一直认为这两种术语都是代名词!外行(相对而言)的文学肯定会这样对待它们。参考 MSDN 或者 维基百科
但是,您的问题使我有些兴趣,所以我做了更多的挖掘和坦率地...除了提及 企业体系结构实用指南(COAD系列), ,我从中引用: -
An architectural style (Base et al. 1997) and an architectural pattern
(Buschmann et al. 1996) are essentially synonymous.
基于更多 谷歌搜索, ,我认为这可能是区分两者的一种可能方法
- 建筑风格是如何创建系统 /将工作的一种概念方法
- 架构模式描述了一种解决方案,用于在子系统或模块及其关系层面上实现样式。
建筑模式如何与设计模式不同,即适配器,观察者基本上是按照它们应用的粒度水平(我知道这不是问题的一部分)
建筑风格 是抽象的IE概念。
+---------------+--------------------------------------------------------+
| Category | Architecture styles |
+---------------+--------------------------------------------------------+
| Communication | SOA, ROA, Message Bus |
| Deployment | Client/Server |
| Domain | Domain Driven Design,Monolithic application |
| Structure | Component-Based, Object-Oriented, Layered, Plug-ins |
+---------------+--------------------------------------------------------+
建筑模式 是混凝土IE实施建筑风格。
- 例如:3层,N层,MVC,休息
设计模式 是在体系结构层面软件设计中常见问题的一般性重复使用解决方案。
- 例如:工厂,单例,原型。
比喻: 寺庙的建筑风格不同宗教:
在我看来,模式和建筑风格是封装设计专业知识的补充机制。建筑风格为组成构建块的构建块设计元素,规则和约束提供了集合,以及用于分析和操纵风格创建的设计的工具。样式通常提供指导和分析,用于在特定领域建立广泛的体系结构,而模式则侧重于在给定样式(或多种样式)中解决较小的,更具体的问题。
对于建筑模式,请考虑特定的方式来设计您的代码 gof 喜欢;适配器,策略,建筑商,调解员等
对于建筑风格,请思考整体系统;即,使用MVC进行演示,DDD对业务层建模,WCF(如果您喜欢.NET)进行Interop,SOA进行集成,等等。
建筑设计模式是更具体的领域,而在广泛的应用中,建筑风格更为通用和可用。由于这种建筑模式需要更多的领域知识。
建筑模式 - 定义一组元素类型及其交互。架构模式的示例包括管道和过滤器,模型 - 视图控制器和反射。
建筑风格 - 该术语是由Garlan和Shaw创造的,它是系统组织的惯用模式。例如,客户端系统是一种建筑风格。
PS:许多原始的建筑风格已被重新制定为模式。
架构模式: 上下文 +问题 - >解决方案
建筑风格: 架构模式的解决方案部分
因此,体系结构样式类似于架构模式的解决方案部分。它经常用于处理架构文档的书籍,其中重点是解决方案,而不是上下文和问题的产生方式。
体系结构样式描述了许多组件的系统。只有一个应用程序架构,您必须应用一种架构风格,例如微服务,SOA和事件驱动的架构。
体系结构模式描述了单个组件中的某些内容,并且不要试图在各处应用CQRS或DDD等相同的架构模式。
建筑风格以非常广泛的笔触告诉我们如何组织我们的代码。它是粒度的最高级别,它指定了应用程序的层,高级模块以及这些模块和图层如何相互交互,以及它们之间的关系。建筑风格的示例:基于组件的SOA
架构模式对代码库有广泛的影响,最常见地影响整个应用程序(即如何在图层内部构造代码)或垂直(即如何从外层处理中的请求到内层)和背部)。架构模式的示例:模型视图控制器,模型视图 - 视图模型
建筑风格
建筑风格是代表您应用程序子系统的更广泛组织的名称,并描述了IT总体大纲的想法。例如, SOA
, Client/Server
, Message Bus
等等
建筑模式
架构模式是通用架构问题可重复使用的解决方案的名称,这些解决方案旨在了解如何实现内部部分来解决它们。例如, 2-Tier
, 3-Tier
, N-Tier
, MVC
, REST
等等
一种样式可以使用多种模式来解决多个问题。例如, 客户/服务器样式 可以使用一个 n层模式 或(和) MVC模式 分开它 商业逻辑, 演示逻辑 和 数据逻辑 用于引入解决方案的模块化 modifiability
和 maintainability
问题。