架构和模式-Architecture&Pattern

什么是架构?

软件体系结构通常被称为架构,指可以预制和可重构的软件框架结构。

Garlan and Shaw认为,软件体系结构是软件设计过程中,超越计算中的算法设计和数据结构设计的一个层次。体系结构问题包括各个方面的组织和全局控制结构,通信协议、同步,数据存储,给设计元素分配特定功能,设计元素的组织,规模和性能,在各设计方案之间进行选择。Garlan & Shaw模型的基本思想是:软件体系结构={构件(component),连接件(connector),约束(constrain)}.其中构件可以是一组代码,如程序的模块;也可以是一个独立的程序,如数据库服务器。连接件可以是过程调用、管道、远程过程调用(RPC)等,用于表示构件之间的相互作用。约束一般为对象连接时的规则,或指明构件连接的形式和条件,例如,上层构件可要求下层构件的服务,反之不行;两对象不得递规地发送消息;代码复制迁移的一致性约束;什么条件下此种连接无效等。
什么是模式?

模式是表示周境、动机、解决方案三个方面关系的一个规则,每个模式描述了一个在某种周境下不断重复发生的问题,以及该问题解决方案的核心所在。看过四人帮(GoF)的23种开发模式吧。

架构和模式的关系?

架构和模式应该是一个属于相互涵盖的过程,但是总体来说Architecture更加关注的是所谓的High-Level Design,而模式关注的重点在于通过经验提取的“准则或指导方案”在设计中的应用,因此在不同层面考虑问题的时候就形成了不同问题域上的Pattern。

架构强调的是软件系统的结构及其各个元素之间的关系,而模式则是抽象各个层次上的关系。比如在架构设计时,设计模式是经过经验抽象过后的一些“准则”,而利用这些模式,有助于在架构设计中更好的分离系统元素(elements)和组织系统元素之间的关系。
通过定义的方式来区分架构和模式是不太可能的,因为本来就是交互交叉和提供服务的,比如著名的MVC(Model-View-Controll)就是一个例子,在设计模式中是一个非常经典的模式,在架构中同样适用。对于熟悉架构设计的系统架构师而言,可以用如下来解释架构和模式之间的关系:架构是Hight-Level Design,着眼于不同业务中共性的解决方案,而模式是General Principle(通用原理)。
模式用来指导架构设计,同时架构设计选择模式
今天就来点理论吧,后续上些架构的经典例子。

posted on 2010-05-14 10:07  魏方  阅读(649)  评论(0编辑  收藏  举报

导航