软件架构/ 框架 /设计/模式以及MVC是设计模式还是架构模式

来源:互联网 发布:java中src是什么意思 编辑:程序博客网 时间:2024/06/05 07:33

这几个词语是翻译词,必然就有交集更多的是一种感觉和思想,没必要太过于经纬分明,但敲代码老喜欢单出口。。。今天突然想MVC  到底是模式?架构还?还是框架?所以一直查呀查,发现各种说法都有大概用English才能说的清楚吧,各种迷茫。

blog和论坛有几种比较好的说法如下:

软件架构:(software architecture)是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计

框架的定义:框架就是一组相互协作的类,对于特定的一类软件,框架构成了一种可重用的设计。(源于《设计模式》)

框架不是架构(即软件体系结构)。体系结构确定了系统整体结构、层次划分,不同部分之间的协作等设计考虑。

框架比架构更具体。更偏重于技术涉嫌。

确定框架后,软件体系结构也随之确定,而对于同一软件体系结构(比如Web开发中的MVC),可以通过多种框架来实现。

框架更像一个半成品。

二、框架与架构之间的关系

1.框架比架构更具体。更偏重于技术涉嫌。确定框架后,软件体系结构也随之确定,

2.而对于同一软件架构(比如Web开发中的MVC),可以通过多种框架来实现。

三、框架与设计模式之间的关系

  框架是软件(如SSH框架 半成品),而设计模式是软件的知识体(理论多,一种方法论),提升框架的设计水平。

总体的:架构(一系列相关设计模式-软件系统各个方面的设计)>框架(偏向于特定技术的半成品比如jAEE中SSH框架)>设计模式(这个只是一种思想一个设计问题的解决方法和语言无关)

这个是对

架构、框架、设计模式之间的关系  的一些理解具体出处找不到了~。

那么个人理解:MVC 算是多种设计模式的集合了。一种设计模式绝对搞不定。哈哈。那就是架构模式吧

比较有意思的是查csdn看到了阎宏 的一些观点~哇卡卡,不知道是不是本人号但是很受启发。

如下:

如何判断一个模式是不是架构模式呢?我个人的一点观点。

一个OO软件系统的架构可以使用架构模式描述和设计,一般而言并没有对这个软件系统规模的限制。也就是说,在一定区间内,不论多大的软件系统,都可以使用某个架构模式。

这意味着架构模式对所描述的系统局部的规模不敏感,至少在一定区间之内不敏感。设计模式就不同了,所有的设计模式都有确定的规模,比如Adapter模式涉及到三个类,等等。

MVC模式涉及几个类?不知道。可多可少。这种模式不可能是设计模式。有一些模式早年被归为设计模式,现在看来可能应当归为架构模式,比如Facade,   Mediator等