2017年1月3日 星期二

MVC 架構 - 以 Hyena 為例

MVC 架構以 M 最為重要! 說明如下:
  • Model: 存放資料,當資料改變時,透過 C 來更新V
  • View: 只是視覺化Model
  • Controller: 當 M 改變時,用來更新V
為了達到 "當 M 改變,透過 C 來更新V" 的目的,Controller 要能夠看得到Model 與View:


其中,Controller 的 RegisterView() 如下:

如此便可以把 M 的改變 呈現在 V  上面。

MVC的優缺點如下:
** 優點:
  • 可以用不同的View 呈現相同的Model
  • 容易對 Controller 進行測試 (Testability => mockup Model for testing),適合TDD

**缺點:
  • 採用Event-driven,是一種複雜的UI design pattern
  • 需要透過Controller 來更新View,很耗資源 



另外,請參考Hyena的Class diagram,Model 也用來執行真正的Business:


MVC 不是一種技術, 而是一種設計理念!