MVC在WebE的對應 (轉)

gugu99發表於2007-08-15
MVC在WebE的對應 (轉)[@more@]

一年前學習中的一段體會,現在仍可回味。

發信人: (海曦), 信區: Develop 標 題: Re: MVC在WebE的對應發信站: 飲水思源 (2002年07月11日19:19:49 星期四), 站內信件 今天繼續看了一下,又有一些新的發現。 【 在 HAX (海曦) 的大作中提到: 】 : 今天看了很久以前down下來的一篇文章: : s and the Web : Alan Knight, Naci Dai (這個名字好像中文名字啊!) : 其中提到Web分層構架是4層: : Input 對應於 M的 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]


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10748419/viewspace-958708/,如需轉載,請註明出處,否則將追究法律責任。

相關文章