mvc跟mvp的區別以及使用的優缺點?
mvc:view和控制器耦合性強
mvp:面向協議,view和model完全解耦,獲取資料(網路遵循協議拿資料,controller層不顯示網路請求資料的過程,只要遵循協議就能拿到資料)
userpresenter層
#import#import
"user.h
"@inte***ce
userviewdata : nsobject
/** 名字
*/@property (nonatomic, strong) nsstring *name ;
/** 年齡
*/@property (nonatomic, strong) nsstring *age ;
- (instancetype)initwithname:(nsstring*)name age:(nsstring*)age;
@end
ns_assume_nonnull_begin
@protocol userviewdelegate - (void
)startloading;
- (void
)finishloading;
//使用者介面的資料
- (void)setusers:(nsarray*)userviewdata;
//資料是空的時候顯示
- (void
)setemptyusers;
@end
@inte***ce
userpresenter : nsobject
@property (nonatomic, weak)
iddelegate
;- (void
)getusers;
@end
ns_assume_nonnull_end
#import
"userpresenter.h
"@implementation
userviewdata
- (instancetype)initwithname:(nsstring*)name age:(nsstring*)age
return
self;
}@end
@implementation
userpresenter
-(void
)getusers
else
if ([self.delegate
respondstoselector:@selector(setusers:)])
}}];
}@end
使用:
#import"viewcontroller.h
"#import
"user.h
"#import
"userpresenter.h
"@inte***ce viewcontroller ()/*
* tableview
*/@property (nonatomic, strong) uitableview *tableview ;
/** 指示器
*/@property (nonatomic, strong) uiactivityindicatorview *indicator ;
/** 空白佔位
*/@property (nonatomic, strong) uiview *emptyview ;
/** protocol
*/@property (nonatomic, strong) userpresenter *userpresenter ;
/** 資料來源
*/@property (nonatomic, strong) nsarray
*userviewdatas ;
@end
@implementation
viewcontroller
- (void
)viewdidload
- (void
)setupui
- (void
)loaddata
#pragma mark - userviewdelegate
-(void
)startloading
- (void
)finishloading
//使用者介面的資料
-(void)setusers:(nsarray*)userviewdata
//資料是空的時候顯示
-(void
)setemptyusers
#pragma mark - 資料來源方法
-(nsinteger)tableview:(uitableview *)tableview numberofrowsinsection:(nsinteger)section
- (uitableviewcell *)tableview:(uitableview *)tableview cellforrowatindexpath:(nsindexpath *)indexpath
userviewdata *userviewdata =self.userviewdatas[indexpath.row];
cell.textlabel.text =userviewdata.name;
cell.detailtextlabel.text =userviewdata.age;
return
cell;
}@end
Android中的MVP架構
model 業務邏輯和實體模型 controllor 是應用程式中處理使用者互動的部分,activity來充當。檢視 view 負責介面資料的展示,與使用者進行互動,就是activity 主導器 presenter 相當於協調者,是模型與檢視之間的橋梁,將模型與檢視分離開來。通過presenter進...
MVP架構設計的新手例子
1.要用到okhttp,許可權及配置如下 android name android.permission.internet compile com.squareup.okhttp3 okhttp 3.7.0 2.網路任務處理類 本來要寫乙個介面,再繼承介面寫乙個類,這裡直接用乙個類,便於理解 pub...
Android最簡單的MVP架構寫法
1 bean資料夾屬於封裝的物件 2 model 我把他的定義就是專門寫網路請求的 3 presenter 我把他當做是溝通的橋梁,實現資料層與檢視層的互動 4 view 最簡單的檢視層包括 activity adapter fragment等。解釋一下我不喜歡講話,所以一般都是 或者截圖了。1 我...