5 8 繼承設計技巧

2021-09-25 00:27:24 字數 510 閱讀 8558

將公共操作和域放在超類;

不要使用受保護的類。

不使用protected的原因:(訪問域)

子類集合無限制,會破壞封裝性。

同乙個包中的所有類都可以訪問protected域。

使用繼承實現"is-a"關係

除非所有繼承的方法都有意義,否則不要使用繼承。

覆蓋方法時,不要改變預期行為。

使用多型,而非型別資訊。

//對於下main這種形式的**:

if(x is of type1)

action1(x)

else if( x is of type2)

action2(x);

//都應該考慮使用多型性。如果action1和action2概念相同,就該為這個概念定義乙個方法,並將其放置在兩個類的超類或者介面中,呼叫:

x.action()

不要過多使用反射。

C 繼承設計

1 共有繼承意味著 is a 關係 是一種 2 繼承中父類的作用域相當於巢狀在子類中。注意上面的宣告,子類中所有名為mf1 mf3 的函式都被父類中mf1 mf3所覆蓋,即使函式有不同的引數型別那個也適用,而且無論是不是虛函式也同樣適用。我們只在意其名稱。3 解決上面的預設掩蓋行為的方法是使用usi...

Aha!設計模式 58 裝飾模式 2

示例 我們從前一篇文章中選取網路資料處理的例子寫一段python 中首先定義了資料處理基類dataprocessor,它有乙個process操作用於處理資料。datacreater是乙個普通的派生類,用於初始化資料。然後是decorator類,它定義了乙個資料成員processor,用於管理裝飾物件...

PCB設計技巧

1.印製線路板上的元器件放置的通常順序 1.放置與結構有緊密配合的固定位置的元器件,如電源插座 指示燈 開關 連線件之類,這些器件放置好後用軟體的lock 功能將其鎖定,使之以後不會被誤移動 2.放置線路上的特殊元件和大的元器件,如發熱元件 變壓器 ic 等 3.放置小器件。2.元器件離板邊緣的距離...