這是一個理論問題,我還沒有想出一個直接很好解釋的答案,關於面向對象的設計。 假設我們有一類音樂事件,並且我們想要實現一個評級類,也許有一個int成員(星星1-5),也許一個吸氣和一個setter函數。 也許我還沒有想到一些更大的圖片呢?作爲另一個類的成員繼承vs類
如果我們希望我們音樂事件類有收視率(只有一個不是數組),爲什麼會更好 - 如果它是 - 從評級類繼承,而不是增加一個等級類成員在音樂事件類裏面?
在編碼:
//why is this better...
class MusicEvent:public Rating {
string name;
string duration;
//and other stuff here
}
//...than this
class MusicEvent {
string name;
string duration;
Rating rating;
//and other stuff here
}
古老的格言說:「寧願組合比繼承」。 – Kayaman