看板 Soft_Job 關於我們 聯絡資訊
點進原作者部落格後... 發現我看過原作者前一篇在討論"MVC是一個巨大誤會"的文章... 其實還是建議對 MVC 有疑惑的人去了解到底什麼是 Design Pattern, 還有什麼是 Architecture Pattern,以及 MVC 在 Pattern 中的定位。 搞懂上述的前因後果,可以開闊很多眼界... 然後我也有對"為什麼MVC在實作上都不一樣"給了一些說明, 希望能幫助大家理解 MVC 與 Design Pattern 的觀念。 完整內容可以參考部落格圖文版 http://www.hansliu.com/posts/2015/03/why-do-not-mvc-pattern-look-like.html --- PTT 好讀文字版 --- MVC 最早是 smalltalk 設計的一個 Pattern,其定義與目的與模擬實作的方法在 Design Pattern 一書中都描述的相當清楚,有興趣的人可以去書店翻一下。 網路上可以參照底下網站的說明: http://www.tutorialspoint.com/design_pattern/mvc_pattern.htm 重點是,Design Pattern 書中不是要強迫你實作的內容百分百一樣, 而是要求你的實作要達到 Pattern 目的,我在這邊列出中文書上對於其目的的說明: MVC 的目的在於增加彈性再利用性同一個 model 可以搭配好幾個 view,也可以做出不會改變 model 內容的 view, 同時更嚴苛的要求,view 不應該包含運算的邏輯。 因此不是去追究每套 Framework 在設計上的差異去與定義比較, 或著去分析每套 Framework 命名的規則和目錄的結構, 然後要說它的設計到底要不要叫做 MVC? 而是要去看設計之後是否能達到 MVC 目的。 - 其實 MVC 不是在23個 Design Pattern 之中,它列在書中的前言, 從 Stackoverflow 的討論中可以得知 MVC 應該是一個 Architecture Pattern。 而分類在不同的 Pattern 之中,其當初設計的想法就是有顯著的不同。 Design Pattern 在實作上會存在需要使用同一種技術語言完成的先天條件, 然而 Architectural Pattern 則沒有這樣的限制。 所以每套 Framework 只要實作出來的結果符合 MVC Pattern 的目的, 並且保證使用者擁有 MVC Pattern 的優點,就算實作的方式不盡相同, 也代表其包含(支援) MVC。 - 回頭來看,MVC 目錄結構要怎麼放或怎麼命名都不是 Framework 在意的, 它只是想確保設計可以達到 MVC 的目的,而建置出來的目錄結構與名稱。 至於到底目錄結構要怎麼放或怎麼命名,這應該是由實作團隊之間保持溝通, 搭配充分的說明與註解的文件,讓團隊可以維持開發流程順利的目的。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.25.9.45 ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1428121200.A.202.html
Masakiad: 推 這才是pattern的精神 04/04 13:04
Masakiad: 補充一點,就算class diagram一樣也會因為解的force不同 04/04 13:23
Masakiad: 而被放在不同pattern,比如說template pattern v.s. Str 04/04 13:23
Masakiad: ategy pattern根本長一樣,但你根本不用質疑他們長這樣 04/04 13:23
Masakiad: 對還錯,因為他們的想解決的force並不同 04/04 13:23
johnny94: 推這篇! 04/04 15:58
chatnoir: 推 04/04 16:22
snaketsai: 推 04/04 16:37
GoalBased: 見山是山,見山不是山 。 無招勝有招 04/04 17:37
wuliou: 推Pattern精神 04/04 22:07
liddle: 推。原po被工具綁住思維了。 04/04 23:01
motestg: 推 04/05 18:12
※ 編輯: jlhc (114.25.9.45), 04/06/2015 18:56:16