你能告诉我什么是可用的软件架构设计模式吗?
为了详细说明我的问题,我想阅读不同的架构设计模式,并确定哪些适合我的项目要求?
例如,有企业应用程序设计模式,企业集成设计模式,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,以便我们可以添加这些链接).这些书也很有用,因为它们可以让您更深入地了解如何使用这些模式.
阅读这些书:
Martin Folwler:企业应用程序架构模式
Gregor Hohpe,Bobby Woolf:企业集成模式:设计,构建和部署消息传递解决方案
对于体系结构模式,请阅读面向模式的软件体系结构第1卷:模式系统.讨论的模式是:
图层
管道和过滤器
黑板
经纪人
模型 - 视图 - 控制器(MVC)
演示 - 抽象 - 控制(分层MVC)
微内核
反射