ios中,我們使用的大部分都是mvc架構雖然mvc的層次明確,但是由於功能日益的增加,**的維護,更多的**被寫在了controller中,這樣controller就顯得非常臃腫。
為了給controller**,後來又從mvc衍生出了一種新的架構模式mvvm架構
mvvm分別指什麼
model-資料層
viewcontroller/view-展示層
viewmodel- 資料模型
mvvm與mvc的不同
首先我們簡化一下mvc的架構模式圖:
mvc.png
在這裡,controller需要做太多得事情,表示邏輯、業務邏輯,所以**量非常的大。而mvvm:
mvvm.png
我們看看mvc和mvvm兩種架構都是怎麼實現這個需求的
mvc:
model類:
#import
@inte***ce user : nsobject
@property (nonatomic, copy) nsstring *username;
@property (nonatomic, assign) nsinteger userid;
@end
viewcontroller類:
#import "homeviewcontroller.h"
#import "user.h"
@inte***ce homeviewcontroller ()
@property (nonatomic, strong) uilabel *lb_username;
@property (nonatomic, strong) user *user;
@end
@implementation homeviewcontroller
- (void)viewdidload else else {
return self;
@end
controller類:
#import "homeviewcontroller.h"
#import "userviewmodel.h"
@inte***ce homeviewcontroller ()
@property (nonatomic, strong) uilabel *lb_username;
@property (nonatomic, strong) userviewmodel *userviewmodel;
@end
@implementation homeviewcontroller
- (void)viewdidload {
[super viewdidload];
_lb_username.text = _userviewmodel.username;
可見,controller中我們不需要再做多餘的判斷,那些表示邏輯我們已經移植到了viewmodel中,viewcontroller明顯輕量了很多。
總結:mvvm同mvc一樣,目的都是分離model與view,但是它更好的將表示邏輯分離出來,減輕了controller的負擔;
viewcontroller中不要引入model,引入了就難免會在controller中對model做處理;
mvvm oc 框架 iOS MVVM架構
ios中,我們使用的大部分都是mvc架構雖然mvc的層次明確,但是由於功能日益的增加,的維護,更多的 被寫在了controller中,這樣controller就顯得非常臃腫。為了給controller 後來又從mvc衍生出了一種新的架構模式mvvm架構 mvvm分別指什麼 model 資料層 vie...
框架 應用框架
框架也是一種重用方式,重用粒度比構件大,與物件導向技術關係密切。1定義 框架johnson 框架 模式 構件。框架是由開發人員定製的應用系統的骨架 skeleton 是整個系統或子系統的可重用設計,由一組抽象構件和構件例項間的互動方式組成。應用框架 buschmann 特定領域應用的框架。框架技術 ...
前期框架 Bootstrap框架
1.什麼是css框架 封裝了很多重複的工作 提高了開發的效率 隨著web應用變得越來越複雜。在大量的開發過程中,我們發現有許多的功能模組非常相似。例如輪播圖,分頁,導航,進度條,模態框等,每一次都手動書寫無疑是在做重複工作。框架的作用就是把這些功能封裝稱為乙個個元件,在開發過程中直接拿過來使用即可,...