Architecture 什么';建筑模式和建筑风格之间的区别是什么?

Architecture 什么';建筑模式和建筑风格之间的区别是什么?,architecture,architectural-patterns,Architecture,Architectural Patterns,在软件架构基础、理论和实践中,我可以找到两者的定义。问题是我不明白它们在简单的英语中的意思: 建筑模式 架构模式是架构设计决策的命名集合,这些决策适用于重复出现的设计问题,这些问题被参数化,以考虑出现该问题的不同软件开发环境 建筑风格 体系结构样式是一组命名的体系结构设计决策,这些决策(1)适用于给定的开发环境,(2)在该环境中约束特定于特定系统的体系结构设计决策,以及(3)在每个生成的系统中获得有益的品质 每一种模式的含义是什么?它们之间有什么区别?对于体系结构模式,请思考特定的方式来设计您的

在软件架构基础、理论和实践中,我可以找到两者的定义。问题是我不明白它们在简单的英语中的意思:

建筑模式
架构模式是架构设计决策的命名集合,这些决策适用于重复出现的设计问题,这些问题被参数化,以考虑出现该问题的不同软件开发环境

建筑风格 体系结构样式是一组命名的体系结构设计决策,这些决策(1)适用于给定的开发环境,(2)在该环境中约束特定于特定系统的体系结构设计决策,以及(3)在每个生成的系统中获得有益的品质


每一种模式的含义是什么?它们之间有什么区别?

对于体系结构模式,请思考特定的方式来设计您的代码,如下面所述;适配器、策略、构建器、中介器等


对于建筑风格的整体思考体系;例如,使用MVC进行表示,使用DDD对业务层进行建模,使用WCF(如果您使用.NET)进行互操作,使用SOA进行集成,等等。

坦率地说,我一直认为这两个术语是同义词!外行文学(相对而言)肯定是这样对待他们的。 推荐人

然而,你的问题引起了我的兴趣,所以我做了更多的挖掘,坦率地说……除了一个参考文献外,我找不到什么,我引述如下:

建筑风格(Base等人,1997)和建筑模式(Buschman等人,1996)本质上是同义词

根据更多信息,我认为这可能是区分两者的一种可能方式:

  • 建筑风格是系统如何创建/工作的概念性方式
  • 体系结构模式描述了在子系统或模块及其关系级别实现样式的解决方案

架构模式与设计模式(即适配器、观察者)的区别基本上取决于应用它们的粒度级别(我知道这不是问题的一部分,但我认为它是相关的…)

架构模式是解决反复出现的架构问题的一种方法。例如,MVC解决了将UI与模型分离的问题。传感器控制器执行器,是一种模式,可帮助您解决在面对多个输入感官时执行的问题

另一方面,一种建筑风格只是一种反复出现的建筑设计的名称。与模式相反,它的存在不是为了“解决”问题

Pipe&filter并不能解决任何特定的问题,它只是一种组织代码的方法。客户机/服务器、主程序和子程序以及抽象数据类型/OO,相同


此外,单个体系结构可以包含多个体系结构样式,并且每个体系结构样式都可以使用多个体系结构模式。

体系结构设计模式更特定于领域,其中体系结构样式更通用,可用于广泛的应用程序。因此,架构模式需要更多的领域知识。

在我看来,模式和架构样式是封装设计专业知识的补充机制。建筑样式提供了构建块设计元素、用于构成构建块的规则和约束以及用于分析和操作在样式中创建的设计的工具的集合。
样式通常为在特定领域中构建广泛的体系结构提供指导和分析,而模式侧重于解决给定样式(或者多种样式)中更小、更具体的问题

架构模式–定义一组通用的元素类型及其 互动。建筑图案的示例包括管道和过滤器, 模型-视图-控制器和反射

建筑风格——这个词是加兰和肖创造的,它是一个 系统组织的惯用模式。例如,客户机-服务器系统 是一种建筑风格

p、 s:许多原始的建筑风格都被保留了下来 重新格式化为模式。

简单地说:

  • 是一个概念,一个理论(以及如何实现它取决于你)。它也可以应用于软件世界之外的领域

    例如:REST()是一种体系结构样式,基于某些原则,使用当前的“Web”基础

  • 描述软件系统(或模块)级别的解决方案。换句话说,它是如何相互作用的,例如视图与模型,模型与控制器

  • 是一个核心级别的解决方案,它讨论类、函数以及逻辑的实际流动方式


  • 建筑风格是抽象的,即概念性的

    +---------------+--------------------------------------------------------+
    |   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    |
    +---------------+--------------------------------------------------------+
    
    架构模式是具体的,即架构风格的实现

    • 例如:3层、N层、MVC、REST
    设计模式是一种通用的可重用解决方案,用于解决架构级软件设计中常见的问题

    • 例如:工厂、单件、原型
    类比:不同宗教的寺庙建筑风格:


    架构模式:上下文+问题->解决方案

    架构风格:架构模式的解决方案部分


    所以架构风格类似于架构模式的解决方案部分。它通常用于处理体系结构文档的书籍中,其中重点是解决方案,而不是上下文和问题是如何产生的

    架构风格描述系统