[英]Using Inheritance Vs. Orthogonal Classes in C++
在C ++中為各種應用程序編寫類時,最好使用正交類(相互不依賴的類),或者最好繼承。 我之所以這么問是因為,我注意到很多問題,其中有兩個或三個不交互的類,而其他人可能有3個通過繼承鏈接的類。
這是不是更偏向於在時間和地點都存在的地方,還是人們似乎更喜歡繼承(從我所見)的原因?
通常,當系統的某些部分看到不同類中的通用性時,可以使用繼承,這些類可以抽象為通用基類。 如果您在類的設計中沒有此方面,則可以將類分開。 因此,使用哪個不是問題,課程使用更多的馬。
這取決於項目的需求以及如何將需求轉換為設計。
您正在談論面向對象編程的三種不同原理。
單一責任 -
在這種情況下,正交類或獨立類是有意義的
繼承 -
組成
看例子
可以說我有一個班級家里有房間家里有家具家里有電子產品
單一責任示例
盡管家具和電子產品屬於家庭,但它們彼此完全獨立。 一個改變不會影響另一個。 因此,兩者之間存在松散耦合,並且它們在很大程度上正交。
繼承示例 Home還具有客房,床房
因此,客房將從客房床繼承
Class GuestRoom : public Room { }
Class BedRoom : public Room { }
構成示例
房間將配備家具和電子產品
class Room {
vector<furniture> furniture_vec;
vector<electronics> electronics_vec;
.
// other members
}
在嘗試設計應用程序時,還有其他面向對象的原理會出現。 閱讀一本有關OOP原理的好書,並查看一些示例,可以進一步闡明這些概念。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.