看板 MacDev 關於我們 聯絡資訊
※ 引述《leondemon (狗狗)》之銘言: : 看了一些資料和書 還是不太懂什麼是delegate : 以及他是如何運作的... : 有沒有什麼比較白話的例子能夠幫助了解呢? : 謝謝:) 這裡提供另一個想法 Refactoring 這本書有提到(中文版的P.352) Delegate 常用在,當某一個subclass只用一些superclass的功能 反之如果subclass用到大部分的superclass的功能就直接繼承 例子是要實作一個MyStack,但要用到Vector的功能 與其MyStack 繼承Vector,不如用delegate 因為MyStack只會用到Vector裡isEmpty()和siz() 那pop, 和push就自已實作 Code: class MyStack { private Vector v = new Vector(); public int size(){ return v.size(); } public boolean isEmpty(){ return v.isEmpty(); } public push(Object o){ // 自己寫 } public Object pop(){ // 自己寫 } } 很簡單的一個想法就是,new一個object幫你做事。 希望有幫到忙。呵 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.62.94.242
leondemon:有懂delegate的用意 不過還是不太懂整體是怎麼運作的 XD 05/31 02:37
leondemon:如果我需要一個helper object那我要在Xcode和IB中做哪些 05/31 02:38
leondemon:設定 才能讓原本的instance去delegate別的物件? 05/31 02:38
leondemon:不太懂IB(interface builder)中 何時要connect delegate 05/31 02:39
leondemon:而且delegate的connection似乎只能單方面設定? 05/31 02:40
zonble:不過,ObjC 裡頭的 delegate 通常不是這樣用…。 05/31 04:02
zonble:這樣比較像是成員變數的 getter setter 耶…。 05/31 04:03
zonble:因為 ObjC 的 delegate 通常只會放一個外部的指標 05/31 04:08
zonble:比較不會是在 Class 裡頭生物件 05/31 04:09