【问题标题】:Software architecture design patterns软件架构设计模式
【发布时间】:2023-03-29 17:01:02
【问题描述】:

您能告诉我有哪些可用的软件架构设计模式吗?

为了详细说明我的问题,我想通读不同的架构设计模式并决定什么适合我的项目要求?

例如,有企业应用程序设计模式、企业集成设计模式、ESB 模式、SOA 模式等。

【问题讨论】:

标签: design-patterns architecture


【解决方案1】:

模式出现在许多层面。架构模式(即架构风格)通常范围最大,涵盖系统的基本组织。设计模式处于多个协作对象的级别。 Bernd 对 Fowler 和其他企业模式的建议是一个很好的建议。只要认识到这些模式往往比这些架构模式更具体:

  • 分层(即虚拟机模式)
  • 大泥球
  • 管道和过滤器
  • 批量顺序
  • 以模型为中心(共享数据)
  • 发布-订阅
  • 客户端-服务器(和 N 层)
  • 点对点
  • MapReduce

架构模式最常适用于系统的运行时结构,但也适用于其模块或硬件分配。一个常见的错误是认为分层模式适用于运行时,而实际上它适用于系统的模块(即,它的编译时依赖项)。当然,您可以在运行时镜像您的模块结构

这些模式在我的书Just Enough Software Architecture, Fairbanks (2010) 中有详细讨论。它们中的大多数也包含在其他书籍中,包括Garlan & Shaw (1996)Taylor, Medvidovic, & Dashovy (2009)Documenting Software Architectures (SEI, 2010)

通过模式名称列表,您应该能够找到大量网页(我已将其标记为社区 Wiki,以便我们可以添加这些链接)。这些书也很有帮助,因为它们让您更深入地了解如何使用这些模式。

【讨论】:

  • +1 - 我还要补充一点,不同的模式通常以两种方式与不同的问题相关:(1)按类型:行为、结构、创建(和多线程)。*有一个细分。 (2) 不同类型的系统、技术和上下文经常使用某些模式比其他模式多,例如我隐约意识到在电信领域你更有可能遇到某些模式,所以识别你的上下文是值得的'正在寻找与它特别相关的模式。
【解决方案2】:

阅读这些书籍:

  • Martin Folwler:企业应用架构模式
  • Gregor Hohpe、Bobby Woolf:企业集成模式:设计、构建和部署消息传递解决方案

【讨论】:

    【解决方案3】:

    有关架构模式,请阅读Pattern-Oriented Software Architecture Volume 1: A System of Patterns。 讨论的模式是:

    • 图层
    • 管道和过滤器
    • 黑板
    • 经纪人
    • 模型-视图-控制器 (MVC)
    • 表示-抽象-控制(分层 MVC)
    • 微内核
    • 反射

    【讨论】:

      【解决方案4】:

      不太确定您的问题!你的一个标签是设计模式,所以我会这样说: 如果您还没有阅读设计模式书籍,那么您需要先阅读设计模式书籍。 Head First Design Patterns 很好。当您了解设计模式时,就可以理解架构设计模式。

      【讨论】:

        【解决方案5】:

        另外,请查看patterns & practices 组中的 Microsoft 应用程序架构指南。请务必阅读第 2 版。

        如需软拷贝,请访问:http://msdn.microsoft.com/en-us/library/dd673617.aspx

        【讨论】:

        • 谢谢大家。感谢您为我提供建议的所有支持。