代码之家  ›  专栏  ›  技术社区  ›  devoured elysium

建筑模式和建筑风格有什么区别?

  •  36
  • devoured elysium  · 技术社区  · 14 年前

    软件体系结构.基础,理论和实践 ,我可以找到两者的定义。问题是,我不明白它们每一个在普通英语中的意思:

    建筑模式

    建筑风格

    体系结构样式是体系结构设计决策的命名集合,这些决策(1)适用于给定的开发环境,(2)约束特定于该环境中特定系统的体系结构设计决策,以及(3)在每个结果系统中获取有益的质量。

    每一个都意味着什么?它们之间有什么区别?

    10 回复  |  直到 8 年前
        1
  •  51
  •   TylerH Ash Burlaczenko    8 年前

    架构模式是解决重复出现的架构问题的一种方法。例如,MVC解决了将UI与模型分离的问题。传感器控制器执行器,是一个模式,将有助于你在面对几个输入感官的驱动问题。

    另一方面,建筑风格仅仅是一个重复的建筑设计的名称。与模式相反,它不存在“解决”问题。

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

        2
  •  11
  •   bad_coder Dima G    5 年前

    坦白说,我一直认为这两个词都是同义词!而外行(相对而言)文学肯定是这样对待他们的。 参考 MSDN Wikipedia

    A Practical Guide to Enterprise Architecture (The Coad Series) ,我引用:

    一个 (Base等人。1997年)和 建筑模式 (Buschmann等人。在本质上是同义词。

    googling ,我认为这可能是区分这两者的一种方法:

    • 一个 建筑风格
    • 一个 描述在子系统或模块及其关系级别实现样式的解决方案。

    怎么一个 建筑模式 将不同于 设计模式 i、 e.适配器、观察者基本上是根据应用它们的粒度级别来决定的(我知道这不是问题的一部分,但我认为这是相关的…)

        3
  •  9
  •   Premraj    7 年前

    是抽象的,即概念性的。

    +---------------+--------------------------------------------------------+
    |   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

    设计模式

    • 例如:工厂,单件,原型。

    类比: 不同宗教的寺庙建筑风格:

    enter image description here

        4
  •  7
  •   kenorb    9 年前

    简单地说:

    • An architectural style

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

      示例:REST( Representational State Transfer )是一个 建筑风格 建立在使用当前Web基础知识的某些原则之上。

    • An architectural patterns

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

    • A design patterns

      是一个核心层的解决方案,它讨论类、函数以及逻辑如何实际流动。

        5
  •  3
  •   F. Farjaminejad    12 年前

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

        6
  •  2
  •   Kane    14 年前

    对于体系结构模式,请按照 GoF 例如:适配器、策略、生成器、中介器等

    对于架构风格,请考虑整个系统;即,使用MVC进行表示,使用DDD对业务层建模,使用WCF(如果您使用.NET)进行互操作,使用SOA进行集成,等等。

        7
  •  2
  •   Malinga    13 年前

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

        8
  •  0
  •   user3109062    11 年前

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

    系统组织的惯用模式。例如,clientserver系统 是一种建筑风格。

    重新格式化为模式。

        9
  •  0
  •   Balazs Sipos    8 年前

    上下文+问题->解决方案

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

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

        10
  •  0
  •   Ali Bayat    6 年前

    体系结构风格描述了一个由许多组件组成的系统。只有一种应用程序体系结构,您必须在任何地方应用一种体系结构样式,如微服务、SOA和事件驱动体系结构。

    架构(Architecture)模式描述单个组件中的某些内容,并且不尝试在任何地方应用相同的架构模式,如CQRS或DDD。

        11
  •  0
  •   Isuru vindula    6 年前

    架构风格以非常宽泛的笔触告诉我们如何组织代码。它是最高级别的粒度,它指定了应用程序的层、高级模块,以及这些模块和层之间如何交互,以及它们之间的关系。架构样式的示例:基于组件、SOA

    体系结构模式对代码库有着广泛的影响,最常见的影响是水平地(即如何在层内构造代码)或垂直地(即如何将请求从外层处理到内层和内层)。架构模式示例:模型视图控制器、模型视图视图模型

        12
  •  0
  •   Sazzad Hissain Khan    5 年前

    体系结构样式是表示应用程序子系统的更广泛的组织并描述其总体轮廓的概念的名称。例如, SOA , Client/Server Message Bus 等。

    体系结构模式是对一般体系结构问题的可重用解决方案的名称,它给出了如何实现内部部分来解决这些问题的概念。例如, 2-Tier , 3-Tier , N-Tier MVC , REST 等。

    一个样式可以使用多个模式来解决多个问题。例如,一个 可以使用 N层模式 或者(和)一个 MVC模式 为了分离它 业务逻辑 , 表示逻辑 数据逻辑 为了引入模块性 modifiability maintainability 问题。