關於何時用繼承何時用組合

2022-08-31 04:54:12 字數 337 閱讀 5197

沒有找到極其強烈無法辯駁的用繼承的原因的時候一律用組合

組合體現為實現層面,繼承主要體現在擴充套件方面

我覺得如果並不是需要乙個類的所有東西(包括介面和屬性),那麼就不需要用繼承,相反就用組合。

用繼承那就必須是所有的都繼承,不是所有的都繼承,那麼就是濫用繼承。

組合在編譯依賴和不同版本的執行時相容性上優於繼承;繼承在合理復用實現的潛力優於組合

繼承偏重集體,具有特殊性的集體(派生類)可以看作是一般性集體(基類)的一部分,如汽車對於交通工具。

組合偏重個體,某個功能物件被宿主物件看成自己的一部分,如輪子對於汽車。

與看待事物的角度有關,繼承偏抽象,組合偏具體。

MySql何時用MyISAM何時用InnoDB

innodb支援事務與外來鍵和行級鎖,myisam不支援 最主要的差別 myisam讀效能要優於innodb,除了針對索引的update操作,myisam的寫效能可能低於innodb,其他操作myisam的寫效能也是優於innodb的,而且可以通過分庫分表來提高myisam寫操作的速度 myisam...

MySql何時用MyISAM何時用InnoDB

myisam和innodb的區別 innodb支援事務與外來鍵和行級鎖,myisam不支援 最主要的差別 myisam讀效能要優於innodb,除了針對索引的update操作,myisam的寫效能可能低於innodb,其他操作myisam的寫效能也是優於innodb的,而且可以通過分庫分表來提高my...

何時有個內連線何時用外連線

比如有tablea tableb,tablea和tableb是一對多 需求一 根據tableb的某寫字段,查詢出tablea 分析 如果此時使用內鏈結 則相應的語句是 select a.from tablea a tableb b where a.id tableb.aid and b.code 4...