design-patterns - 软件架构设计模式

标签 design-patterns architecture

你能告诉我什么是可用的软件架构设计模式吗?

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

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

最佳答案

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

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

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

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

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

    关于design-patterns - 软件架构设计模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4192887/

    相关文章:

    architecture - 旧版兼容性的最佳实践

    sql-server - Multi-Tenancy : What benefit does one-db-per-tenant provide?

    performance - 如何计算处理器的 MIPS?

    c++ - 哪种 C++ 设计方法更易于维护?

    c++ - 如何实例化基于输入的策略模式

    OOP:如何处理具有相互关系的对象?

    database-design - 我如何为一个应用程序设计数据库来处理多个国家的特殊需求

    .net-core - 使用 MediatR 链接处理程序

    c++ - 新旧状态的区别

    design-patterns - 模板模式和策略模式有什么区别?