一年前学习中的一段体会,现在仍可回味。
发信人: 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]