看板 OOAD 關於我們 聯絡資訊
※ 引述《bill42362 (酒池肉林夜夜生科)》之銘言: : A { : methodX(); : methodA(); : } : B { : methodX(); : methodB(); : } : C { : methodX(); : methodC(); : } 我想要的效果大概是這樣: 以 facebook 的分享來舉例 A 是分享圖片的物件,B 是影片的物件,C 是文章的物件 三個物件都有一個 display() 的 method (對應 methodX()) 但是 A 的實作是貼圖,B 的實作是顯示某一畫格, C 的實作則是顯示文字。 A 有專屬的 zoom() method (對應 methodA()) B 則是 play() (methodB()) C 是 copy() (methodC()) 而我想動態加上的 methodY(), methodZ() 則可能是根據 權限決定是否加上的 share(), vote(), edit(), delete() 比如甲因為是作者,所以為他加上 edit() 和 delete() 同一個物件乙看到時可能只有 vote() 而丙因為是甲的好友,所以可以 share(), vote() 希望這樣有解釋的更清楚一點, 我希望實作出來的系統也就跟這個例子差不多了, 所以如果這樣的想法從根本上就錯也請直接吐槽 囧 再次感謝大大花時間看完!! -- 想你的時候 不一定能告訴你 如果不告訴你 也能會意 那我們就是有 真正的默契 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 121.215.129.5
legendmtg :你應該先考慮把share() vote edit()這些function 10/13 04:24
legendmtg :做成接收A B C這些type的non-member function 10/13 04:25
tails32100 :個人想法:就算動態加上去一樣,在調用時一樣要判斷 10/13 12:28
tails32100 :直接把要用的function全寫進去,判斷寫在裡面會比較 10/13 12:29
tails32100 :單純好懂 Orz 10/13 12:30
bill42362 :我的目標是只有 new 的時候判斷,全寫進去的話就會有 10/13 16:52
bill42362 :一堆重複的 share() vote() edit() 如果真的沒辦法 10/13 16:53
bill42362 :也只好這樣 TT 10/13 16:54
bill42362 :L大: 如果做成 non-member 是不是就表示 ABC 裡的東 10/13 16:55
bill42362 :西都要變成 public 了? @@" 10/13 16:55
qrtt1 :看起來沒有動態的必要,這是有沒有權限的問題啊xd 10/13 20:18
qrtt1 :你需要的是一個好的權限架構吧(思 10/13 20:33
legendmtg :提供set/get function就好了啊 為什麼要做成public? 10/13 21:10