Facade(外觀模式)
為子系統(tǒng)中的一組接口提供一個(gè)一致的界面积糯,此模式定義了一個(gè)高層接口铛楣,這個(gè)接口使得這一子系統(tǒng)更加容易使用。
基金經(jīng)理幫我們管理不同的股票代嗤。基金經(jīng)理作為外觀缠借,我們只需要讓基金經(jīng)理買或者賣就好干毅,基金經(jīng)理再幫我們處理不同股票的賣或者買。
項(xiàng)目中有不同的網(wǎng)絡(luò)請(qǐng)求泼返,對(duì)于每一種類型的網(wǎng)絡(luò)請(qǐng)求都封裝到一個(gè)固定的文件里處理,比如公用參數(shù)添加硝逢,返回?cái)?shù)據(jù)的處理。然后再通過(guò)一個(gè)外觀文件引入绅喉,直接就可以使用了渠鸽。從使用來(lái)說(shuō),所有網(wǎng)絡(luò)請(qǐng)求的差異都被外觀文件處理了柴罐。
還有比如AFN對(duì)于NSURLSession的不同系統(tǒng)版本的處理徽缚。
VC.m
HCDFound *found = [[HCDFound alloc]init];
[found buyFund];
[found sellFund];
HCDFound.h // 外觀類
@interface HCDFound : NSObject
-(void)buyFund;
-(void)sellFund;
@end
HCDFound.m
@interface HCDFound()
@property(nonatomic,strong)HCDstock1 *stock1;
@property(nonatomic,strong)HCDstock2 *stock2;
@property(nonatomic,strong)HCDstock3 *stock3;
@end
@implementation HCDFound
-(instancetype)init{
self = [super init];
if (self) {
_stock1 = [[HCDstock1 alloc]init];
_stock2 = [[HCDstock2 alloc]init];
_stock3 = [[HCDstock3 alloc]init];
}
return self;
}
-(void)buyFund{
[self.stock1 buy];
[self.stock2 buy];
[self.stock3 buy];
}
-(void)sellFund{
[self.stock1 sell];
[self.stock2 sell];
[self.stock3 sell];
}
@end
HCDstock1.h // 外觀類中的一個(gè)子類
@interface HCDstock1 : NSObject
-(void)buy;
-(void)sell;
@end
HCDstock1.m
@implementation HCDstock1
-(void)buy{
NSLog(@"買入股票1");
}
-(void)sell{
NSLog(@"賣出股票1");
}
@end