委託就是秘書委託是objc中使用非常頻繁的一種設計模式,它的實現與協議的使用是分不開的,讓我們看乙個綜合示例:
小公司老闆日常的工作是管理公司、教導新員工、發工資與接**。其中管理公司、教導新員工是老闆要親為的。
而發工資與接**老闆希望招聘乙個秘書來幫忙,於是對秘書的要求就是要略懂出納發工資,要能幫助領導接**。
而這兩項要求便是協議,對類功能的限定。
// secprotocol.h
#import
@protocol secprotocol
//發工資
-(void)payoff;
//接**
-(void)tel;
@end
然後定義乙個秘書類
// sec.h
#import
#import "secprotocol.h"
@inte***ce sec : nsobject
@end
// sec.m
#import "sec.h"
@implementation sec
- (id)init
return self;
}-(void)payoff
-(void)tel
@end
緊接著是老闆類:
// boss.h
#import
#import "secprotocol.h"
@inte***ce boss : nsobject
//此屬性用於指定秘書物件,此物件必須實現secprotocol協議。
@property(nonatomic,retain) iddetegate;
//管理
-(void)manage;
//教導新員工
-(void)teach;
@end
// boss.m
#import "boss.h"
@implementation boss
@synthesize detegate=_detegate;
- (id)init
return self;
}-(void)manage
-(void)teach
-(void)payoff
-(void)tel
@end
那麼老闆就具有這4個方法,當呼叫前2個時是自己完成功能,而呼叫後2個時則轉為呼叫秘書的方法。
此時我們跟秘書物件就叫做**物件,**模式的名字由來於此。
最後呼叫測試下:
// main.m
// delegate
//// created by sxt on 11-10-23.
#import
#import "boss.h"
#import "sec.h"
int main (int argc, const char * argv)
介面和協議
介面和協議 1.cs 客戶端 伺服器 bs 瀏覽器 伺服器 bs與cs優缺點對比 cs響應速度快,安全性強,使用者體驗好,一般應用於區域網中,但是開發維護成本高 bs可以實現跨平台,客戶端零維護,但是個性化能力低,響應速度較慢。所以有些單位日常辦公應用bs,在實際生產中使用cs結構。2.http1....
介面和協議
什麼是http協議 http協議是超文字傳輸協議.1 http1.0規定瀏覽器與伺服器只保持短連線,瀏覽器的每次請求都需要與伺服器建立乙個tcp連線,伺服器完成請求處理後立即斷開tcp連線,伺服器不跟蹤每個客戶也不記錄過去的請求。http1.0不支援host請求頭欄位 2 http1.1支援持久連線...
OC分類和協議
分類 分類是給原有的類擴充一系列的方法,在不改變源 的情況下給類新增 方法的簡便方法,無需建立子類。分類的一些注意事項 1,分類不能新增成員變數,自能訪問原始類的成員變數 2,分類可以重寫原類的方法,但是這樣做會導致原類的方法不能再使用 3,可以建立多個分類 4,分類宣告的方法不必全都實現 5,通過...