Re: [請益] class繼承問題
: 我覺得這不是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
討論串 (同標題文章)
完整討論串 (本文為第 9 之 9 篇):
1
6
PHP 近期熱門文章
PTT數位生活區 即時熱門文章
4
18
6
15