iOS 架構模式

來源:互聯網
上載者:User

標籤:readonly   業務   結果   nlog   mic   mvvm   tom   name   person   

iOS 架構模式-MVVMMVVM

Model-View-ViewModel
MVVM 其實是MVC的進化版,他將商務邏輯從VC中解耦到ViewModel,實現VC的瘦身。

做一個簡單的登入判斷:

建立LoginViewModel(邏輯處理),LoginModel(只放資料),LoginViewController。 這裡不用LoginView是為了能更好的把精力集中在用ViewModel解耦上。

在LoginModel中加入方法

//.h- (instancetype)initWithUserName:(NSString *)username password:(NSString *)password;@property (nonatomic,copy,readonly)NSString * username;@property (nonatomic,copy,readonly)NSString * password;
//.m- (instancetype)initWithUserName:(NSString *)username password:(NSString *)password {    if (self = [super init]) {        _username = username;        _password = password;    }    return self;}

在LoginViewModel中加入方法

//.h
import "PersonModel.h"- (instancetype)initWithPerson:(PersonModel *)person;@property (nonatomic,assign,readonly)BOOL canLogin;


//.m
- (instancetype)initWithPerson:(PersonModel *)person {
 if (self = [super init]) { //在這做你綁定model後的處理 _canLogin = [self valiCanLoginWithUserName:person.username password:person.password]; } return self;}- (BOOL)valiCanLoginWithUserName:(NSString *)username password:(NSString *)password { if (username.length & password.length) { return YES; } else { return NO; }}

然後VC(或者View)就可以直接這樣獲得判斷後的結果

PersonModel * person = [[PersonModel alloc]initWithUserName:@"10" password:@"10"];PersonViewModel * viewModel = [[PersonViewModel alloc]initWithPerson:person];NSLog(@"%d",viewModel.canLogin);

簡單的功能的時候沒什麼,當你處理複雜的邏輯判斷的時候,MVVM會有巨大優勢。

iOS 架構模式

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.