mvvm oc 框架 iOS MVVM架構

2021-10-18 08:24:51 字數 1598 閱讀 2163

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應用變得越來越複雜。在大量的開發過程中,我們發現有許多的功能模組非常相似。例如輪播圖,分頁,導航,進度條,模態框等,每一次都手動書寫無疑是在做重複工作。框架的作用就是把這些功能封裝稱為乙個個元件,在開發過程中直接拿過來使用即可,...