1. 程式人生 > >設計模式——委託模式

設計模式——委託模式

委託模式同樣是設計模式的一種。
委託模式:兩個物件之間,不能直接聯絡,需要通過一個第三方的物件,幫助它們聯絡,叫委託模式。
借用買賣二手房的例子:
這裡寫圖片描述
在使用委託模式時,我們需要使用協議。協議就是一套標準,在標準裡面聲明瞭很多方法,但卻不管方法是怎麼實現的。通常方法的實現都在受委託類(中介)中實現。而最後通過委託類(業主)呼叫。當然具體情況具體分析,這裡只是一個簡單的例子。
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]; } }

執行結果:
這裡寫圖片描述