Re: [心得] 框架不應該有「MODELS」資料夾

看板Soft_Job (軟體人)作者 (H)時間11年前 (2015/04/04 12:20), 11年前編輯推噓7(705)
留言12則, 8人參與, 最新討論串3/3 (看更多)
點進原作者部落格後... 發現我看過原作者前一篇在討論"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

04/04 13:04, , 1F
推 這才是pattern的精神
04/04 13:04, 1F

04/04 13:23, , 2F
補充一點,就算class diagram一樣也會因為解的force不同
04/04 13:23, 2F

04/04 13:23, , 3F
而被放在不同pattern,比如說template pattern v.s. Str
04/04 13:23, 3F

04/04 13:23, , 4F
ategy pattern根本長一樣,但你根本不用質疑他們長這樣
04/04 13:23, 4F

04/04 13:23, , 5F
對還錯,因為他們的想解決的force並不同
04/04 13:23, 5F

04/04 15:58, , 6F
推這篇!
04/04 15:58, 6F

04/04 16:22, , 7F
04/04 16:22, 7F

04/04 16:37, , 8F
04/04 16:37, 8F

04/04 17:37, , 9F
見山是山,見山不是山 。 無招勝有招
04/04 17:37, 9F

04/04 22:07, , 10F
推Pattern精神
04/04 22:07, 10F

04/04 23:01, , 11F
推。原po被工具綁住思維了。
04/04 23:01, 11F

04/05 18:12, , 12F
04/05 18:12, 12F
※ 編輯: jlhc (114.25.9.45), 04/06/2015 18:56:16
文章代碼(AID): #1L7sPm82 (Soft_Job)
文章代碼(AID): #1L7sPm82 (Soft_Job)