Re: [請益] class繼承問題

看板PHP作者 (太陽拳vs野球拳)時間12年前 (2013/07/12 20:16), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串9/9 (看更多)
: 我覺得這不是OO相性的問題,而是設計模式錯了 : 一直繼承並不是個好例子 : 你可以用骨架模式或裝飾者模式來進行 : abstact class 人猿{ : public 對像; : public function 結婚($model); public function 家傳行為(); : } : class 阿公 extends 人猿{ : public function gf(){ : } public function 家傳行為(){ 獻祭大典(); } : } : class 阿爸 extends 阿公{ : public function father(){ : } public function 家傳行為(){ 光宗耀祖(); return parent::家傳行為(); } : } : class 死囡仔 extends 阿爸{ : public function child(){ : } : public function 結婚($model){ : $this->對像 model; : } public function 家傳行為(){ 養兔子(); 跑夜店(); return parent::家傳行為(); } : } : interface i瘦女人{ : public function 生子(); : } : interface i有兇女{ : public function 嘿嘿(); : } : class 女人甲 implements i瘦女人{ : public function 生子(); : } : class 女人乙 implements i瘦女人, i有兇女{ : public function 嘿嘿(); : public function 生子(); : } : ============================================= : 開工 : 各個不同代的人應該要再區別他們的偏好,在同樣行為下,但是有不同的目的 : $cm30 = new 死囡仔; : $marry1 = $cm30->結婚(new 女人乙); : $marry1->對像->嘿嘿(); //嘿嘿 : $marry1->對像->生子(); : 這也是為什麼JAVA的書一直提到 : "多用合成,少用繼承" 的原因... 再來增加後面幾篇提到的問題 $cm30->家傳行為(); //獻祭大典會做 //光宗耀祖會做 //養兔子會做 //跑夜店會做 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 1.34.4.90
文章代碼(AID): #1Ht_EiQF (PHP)
文章代碼(AID): #1Ht_EiQF (PHP)