隨筆-348  評論-598  文章-0  trackbacks-0

          如果把這三者放在一起比較,先說一下三者的共同點,也就是Model和View:

          • Model:數據對象,同時,提供本應用外部對應用程序數據的操作的接口,也可能在數據變化時發出變更通知。Model不依賴于View的實現,只要外部程序調用Model的接口就能夠實現對數據的增刪改查。

          • View:UI層,提供對最終用戶的交互操作功能,包括UI展現代碼及一些相關的界面邏輯代碼。

          三者的差異在于如何粘合View和Model,實現用戶的交互操作以及變更通知

          • Controller

          Controller接收View的操作事件,根據事件不同,或者調用Model的接口進行數據操作,或者進行View的跳轉,從而也意味著一個Controller可以對應多個View。Controller對View的實現不太關心,只會被動地接收,Model的數據變更不通過Controller直接通知View,通常View采用觀察者模式監聽Model的變化。

          • Presenter

          Presenter與Controller一樣,接收View的命令,對Model進行操作;與Controller不同的是Presenter會反作用于View,Model的變更通知首先被Presenter獲得,然后Presenter再去更新View。一個Presenter只對應于一個View。根據Presenter和View對邏輯代碼分擔的程度不同,這種模式又有兩種情況:Passive View和Supervisor Controller。

          • ViewModel

          注意這里的“Model”指的是View的Model,跟MVVM中的一個Model不是一回事。所謂View的Model就是包含View的一些數據屬性和操作的這么一個東東,這種模式的關鍵技術就是數據綁定(data binding),View的變化會直接影響ViewModel,ViewModel的變化或者內容也會直接體現在View上。這種模式實際上是框架替應用開發者做了一些工作,開發者只需要較少的代碼就能實現比較復雜的交互。



          ---------------------------------------------------------
          專注移動開發

          Android, Windows Mobile, iPhone, J2ME, BlackBerry, Symbian
          posted on 2017-05-10 11:03 TiGERTiAN 閱讀(424) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 曲周县| 江都市| 绿春县| 龙口市| 麟游县| 涞水县| 乾安县| 平果县| 夏津县| 衡水市| 南充市| 六安市| 宁明县| 桃园县| 鄂尔多斯市| 托克托县| 景洪市| 齐齐哈尔市| 江达县| 新平| 容城县| 玛多县| 闽清县| 阿鲁科尔沁旗| 化隆| 蓝田县| 陆良县| 阿勒泰市| 鄯善县| 石棉县| 五莲县| 江源县| 子长县| 青海省| 安泽县| 广安市| 临汾市| 文登市| 区。| 木兰县| 永城市|