一年前学习中的一段体会,现在仍可回味。
发信人: HAX(海曦), 信区: WebDevelop
标 题: Re: MVC在WebE的对应
发信站: 饮水思源 (2002年07月11日19:19:49 星期四), 站内信件
今天继续看了一下,又有一些新的发现。
【 在 HAX (海曦) 的大作中提到: 】
: 今天看了很久以前down下来的一篇文章:
: Objects and the Web
: Alan Knight, Naci Dai (这个名字好像中文名字啊!)
: 其中提到Web分层构架是4层:
: Input 对应于 MVC 的 input controller
: Application logic 对应于 application controller
: Business logic 对应于 model
: Presentation 对应于 view
传统MVC起源于smalltalk这种语言,用于软件开发。但是我们对smalltalk
不了解,很多对方也对MVC想当然,而且有绝对化(神化)MVC的倾向,
但是今天重新看了一下Objects and the Web文章里的图,据说MVC中的
Controller原来只是控制Keyboard、Mouse的,也就是说只是Input Controller,
而且Web上的Input Controller的对象显然不是Keyboard之类而是HTTP的Request
(所以好像看到有熟悉smalltalk的同志抱怨此MVC与stucts实现的MVC不同)……
而且更重要的是原始的MVC中并没有显然的区分Application logic 和
Business logic!仔细想想也是,Smalltalk就是学院式编程,恐怕没有
中间件的概念。
请问诸位同志在学习编程的时候有意识的区分Application logic和
business logic吗?我猜想达不到大量复用和构建复杂应用的需求时,
不会有自觉的Application logic和Business logic的划分吧!
: 俺觉得以前好象对这个对应没有搞得很清楚。主要的问题是
: 对于Application logic跟Business logic有些混淆。因为
: 还有content-logic-style的分法。事实上现在明白了,复杂的
: style还包括presentation logic,而content-logic的分法是
: 与model-controller的分法有差异的。因为对于传统web来说
: 它只有人可以理解的content没有设计model!当然这个判断不
: 是绝对的。因为content(data)既然成为独立的层,好歹会有
: 一些model,但这个model通常不是像MVC中那样是OO的,一般
: 可能仅仅是结构化和半结构化数据,或者是像ER model。显然
: 如果是这种情况,business logic就不能被封装到对象自身,
: 于是就容易与controller(application logic)混淆起来!
这里有点没有说清楚,content-logic和model-controller是有不同,
但是有类似的问题。前者的问题是application logic和business logic
混入logic层(我判断原因是content缺乏oo的表达),后者的问题是
application logic和business logic混入model层(或者毋宁说是还没
有application和business的分层需要)。
: 可是有个疑问,web的content不选择oo model,就一定是错的吗?
: MVC的分层一定适合于WebE吗?我虽然还没有答案,但我倾向于
: Web上需要应用的是一种非传统OO(如RDF)的model。
最后的意思是oo好像也具有封闭性……但是这个想法还很不清晰。
欢迎大家讨论。
--
做系统缺少资产,做应用缺少沟通,做信息缺少分类,
做工程缺少规范,做管理缺少制度,做团队缺少组织……
※ 来源:·饮水思源 bbs.sjtu.edu.cn·[FROM: 202.120.15.34]