2014年4月27日 星期日

MVC,MVP,MVVM,MVFM 的比較和架構


今天因為在想一些架構上的問題 !

所以就找了一些東西看!

先講一下我看完一些資料後我自己的了解!

Model-View-Controller

的整個流程是

View <-> Controller -> Model -> View

View 被使用者操作 和 cotroller 互相作用 !

如果有 Cotroller 會通知 Model 作一些處理

Model 會通知 View 作一些改變!

為了將 循環 切斷 將切分得更乾淨!

產生了 Model - View - Presenter

Model <-> Presenter <-> View

View 和 Model 完全的切開了 !

但是更新資料卻要透過 Presenter  傳遞 !

基於 MVP 的架構 又多了一種拆分方式!

Model-View-ViewModel

這是一種特化的 MVP 拆分方式!

針對 View 去拆分 Presenter

讓 View 的流程更順 ~~

Model -> ViewModel <-> View

因為針對 View 去拆分 所以 ViewModel 重用的可能性變得很低

所以出現了

Model - View- FunctionModel 的拆分方法

把 針對 View 拆分的方式 改成對一個 Function 去拆分!

這樣會拆分得更細! 重用的機會也就更多!

以上大概就是我讀了下面那樣多篇的一些粗淺心得!

//==================================================

Riot.js — 1Kb 大小的 JavaScript 的 MVP 框架
http://www.oschina.net/translate/riotjs-the-1kb-mvp-framework

MVC和MVP的一些思考
http://www.cnblogs.com/janyou/archive/2008/12/05/1348244.html

Scaling Isomorphic Javascript Code
http://blog.nodejitsu.com/scaling-isomorphic-javascript-code/

[PureMVC]初學者入門教學Part.1 Application與Facde
http://www.ria.tw/2010/08/puremvcpart1-applicationfacde.html

Understanding MVC And MVP (For JavaScript And Backbone Developers)
http://addyosmani.com/blog/understanding-mvc-and-mvp-for-javascript-and-backbone-developers/

MVFM vs MVVM 的分析 比較
http://www.devdiv.com/mvfm_-blog-55433-50285.html

框架設計! 使用分析過程!
http://my.eoe.cn/961719/articles

Python里没有接口,如何写设计模式?
http://www.zhihu.com/question/20685467

充血模型与贫血模型分别适用于何种情况?
http://www.zhihu.com/question/20360521

如何区分javascript设计模式中的中介者模式(Mediator Pattern)与观察者模式(Observer Pattern)?
http://www.zhihu.com/question/21092827

MVC MVP MVVM MVFM 等的分析比較!
http://www.cnblogs.com/indream/p/3602348.html


http://seldo.com/weblog/2011/06/15/orm_is_an_antipattern

http://www.xuebuyuan.com/1230694.html

再抽象一点
http://techsingular.net/?p=1125

沒有留言 :