[英]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.