五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(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)于繼承?的評論 (共 條)

分享到微博請遵守國家法律
武定县| 武宣县| 泗洪县| 梁平县| 元阳县| 绍兴市| 理塘县| 班戈县| 松滋市| 北票市| 揭西县| 从化市| 上犹县| 县级市| 湟源县| 博客| 巴青县| 沁源县| 始兴县| 白水县| 昭觉县| 新民市| 府谷县| 镇江市| 北宁市| 武汉市| 阳泉市| 衡南县| 左贡县| 黄骅市| 泸西县| 北流市| 洪江市| 井冈山市| 耒阳市| 平阳县| 黎平县| 建湖县| 广德县| 克什克腾旗| 吕梁市|