設計模式——委託模式
阿新 • • 發佈:2019-02-17
委託模式同樣是設計模式的一種。
委託模式:兩個物件之間,不能直接聯絡,需要通過一個第三方的物件,幫助它們聯絡,叫委託模式。
借用買賣二手房的例子:
在使用委託模式時,我們需要使用協議。協議就是一套標準,在標準裡面聲明瞭很多方法,但卻不管方法是怎麼實現的。通常方法的實現都在受委託類(中介)中實現。而最後通過委託類(業主)呼叫。當然具體情況具體分析,這裡只是一個簡單的例子。
1.建立一個協議Landlord_Protocol.h:
//宣告方法,遵循協議,則必須實現該方法
-(void)saleHouse;
2.中介類引入協議(獲得代理權),並實現協議的方法
-(void)saleHouse{
NSLog(@"我是中介,我跟房東簽訂了協議,我要幫業主賣房子" );
}
3.Landloard.h 宣告協議屬性
@property(nonatomic, assign)id<Landlord_Protocol> delegate;
//註冊、登記賣房
-(void)registedHouse;
4.Landloard.m 實現方法
-(void)reistedHouse{
NSLog(@"我是業主,我已經將房子登記到中介處");
//判斷,如果委託存在,並且遵循協議,即執行以下方法
if(self.delegate && [self.delegate conformsToProtocol:@protocol (Landlord_Protocol)]){
[self.delegate sellHouse];
}
}
執行結果: