无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

【熟】代碼美學(xué):組合為何優(yōu)于繼承?

2023-09-09 14:10 作者:陳云Cyril  | 我要投稿

Prefer Composition Over Inheritance

這兩件事是為了解決同一個問題——代碼復(fù)用

繼承的缺點在于子類和基類發(fā)生耦合

公共的部分 ->作為基類。

但是你很快就會發(fā)現(xiàn)特例需要修改

不通過繼承來復(fù)用代碼就是在組合

使用多個類進行組合

Re_use ; Extending, Using

Abstraction ;Parent Classes Interface

抽象可以復(fù)用代碼,但不需要知道具體復(fù)用的是誰。拿到的是一個局部

繼承 讓使用者拿到某個類的實例,但是實際上傳進來的是子類的實例;

一切都正常運作,但整體上都已經(jīng)面目全非了。

默認的協(xié)議要求子類至少實現(xiàn)了這些方法

接口不像完整的類有各種方法和變量

給出了一份,對象的能力的協(xié)議。接口是最小化的。

?
08:08
?

將要用的東西以接口形式作為參數(shù)傳進來

The Cons of Composition 缺點

需要初始化各種內(nèi)部類型。大量的重復(fù)代碼大量的包裝方法。


組合可以減少對象之間的接觸面。

減輕修改帶來的摩擦力。

少量修改時繼承會好用。但需要避免能直接訪問的protected變量

顯式創(chuàng)建需要重寫且能訪問的API

final/ sealed/private 密封methods方法被標記成避免不了解子類而修改出現(xiàn)bug

【熟】代碼美學(xué):組合為何優(yōu)于繼承?的評論 (共 條)

分享到微博請遵守國家法律
右玉县| 温州市| 名山县| 班玛县| 巴林右旗| 仙游县| 开封县| 四川省| 镇康县| 神木县| 巴彦淖尔市| 商河县| 临江市| 霍林郭勒市| 涪陵区| 闵行区| 康马县| 平原县| 昌黎县| 张家界市| 灌南县| 嘉黎县| 洪泽县| 灵宝市| 威远县| 镶黄旗| 普兰县| 家居| 安陆市| 安龙县| 家居| 唐河县| 沁水县| 佛坪县| 枣强县| 洪江市| 师宗县| 鄢陵县| 佛学| 左贡县| 安康市|