最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

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

分享到微博請遵守國家法律
江都市| 明溪县| 广东省| 宁晋县| 庄河市| 安吉县| 桃园县| 西青区| 门头沟区| 南宫市| 中卫市| 灌云县| 河津市| 海安县| 同心县| 定日县| 宁陵县| 永德县| 安远县| 祁东县| 滨州市| 德阳市| 连云港市| 屯门区| 安顺市| 固镇县| 方山县| 凌源市| 阳高县| 柞水县| 平安县| 洛南县| 汉源县| 清丰县| 台前县| 富裕县| 和静县| 霍林郭勒市| 宁津县| 清远市| 德州市|