框架、模型与模式的区别和意义

来源:互联网 发布:真融宝 靠谱吗 知乎 编辑:程序博客网 时间:2024/05/16 17:28
 

所谓框架、模型与模式

    看了这么久的论文,终于明白了这三个概念的区别和具体的意义。在和实验室的同学讨论的同时发现很多同学对这个问题也不是很明确,所以写个小文记录一下。

    首先需要说明的是,这个所说的框架、模型和模式都是在看研究性论文的时候经常提到的概念,可能和软件工程领域的对应概念并不完全一致。并且因为水平有限,我的理解也可能是不正确的。

首先说说框架。所谓框架,应该就是一种处理流程。典型的框架可能是下面这样的:

1a_clip_image002 

    这个图片可能看不清楚,不过不重要。框架就是一个解决某一个问题的处理流程。我们熟悉的ASP.NET框架,Rails框架也都是这类的框架——他们解决的是如何搭建web应用的问题。ASP.NET和Rails都规定了一系列的处理流程,从获得用户请求,到把请求定向到适当的类,如何调用用户定义的函数处理问题,再到把处理结果发送给用户。

所谓模型,是一种描述问题的工具。这里需要注意的是我所说的模型并不是所谓“数学建模”、“软件建模”得到的模型,而是另外一种模型,比如对象模型,关系模型等等。这类模型是一些规定,这些规定描述了如何去描述一个概念,同时还规定了一系列的操作,这些操作描述了概念之间如何进行交互。比较典型的就是关系模型,他描述了使用很多很多的属性(数据库字段)来描述一个概念(数据库表),以及这些概念之间的关系,比如Union(对应union操作符),Project(对应select columnname fromtablename)等等。模型是一种工具,他是用来帮助人们记录和分析问题的。其他的常用模型还包括对象模型,UML模型等等。

   最后是模式。可以认为使用模型建模得到的东西就是模式,比如一个数据库设计,一个软件类设计等等。需要注意的是虽然MySQL管他的数据库叫做模式,但是一个运行中的数据库并不是一个模式,而是一个模式的一个具体实例。因为同一个模式可以有很多个实现,比如Northwind数据库在很多人的机器上都有,但是都是用的Northwind数据库模式。

这里的模式是所谓的Schema,而不是设计模式所谓的Pattern。Schema是用来描述概念和概念之间关系的,而Pattern更多的用于描述概念实例之间的关系,比如某些数据具有一些特定的模式(Pattern),比如电话号码总是【区号-号码】这种模式。
原创粉丝点击