2013年1月5日 星期六

MVC pattern



概念上是這樣,實做上可以花點巧思。

例如 Cocoa Framework 是這樣設計的:http://www.stanford.edu/class/cs75n/1_MVC.pdf

看到了嗎?Cocoa Framework 把 UPDATES 這條路切斷,也就是說,model 不與 view 溝通,model 只與 controller 溝通 ((有必要的話)),間接溝通。所謂的間接,就是使用 observer pattern 概念。

((event-driven))

((model 當然可以搞自閉,不斷的讓 controller 來問狀態或資料,例如某些游戲。不管怎樣,model 絕對不能碰到 view 的邏輯!))

雖然圖是這樣畫,但實際照圖 implement 的話,你的 model 就改不完了


Example: stocktotal
  • Model: Postgres database with functions + source module
  • View: amcharts + datatables in portal module / PDF in report module
  • Controller: PHP + Javascript in portal module / JasperReports in report module


現在準備想寫 iOS app。因為當初設計妥當,model 完全不必更動,只需專心研究 iOS 怎麼寫 UI 就可以了。同樣道理,以後想寫 Android app,我也不必更動 model。因為 model 與 view 無關,中間只能靠 controller 溝通!

沒有留言:

張貼留言