特别是在 C++ 中,但也通常作为一种 OO 设计原则,这样做有什么问题吗?是在实践中完成的吗?如果它显示出明显的设计缺陷,有什么好的替代方案?有什么优势吗?
class Property {};
class CompositeProperty : public Property
{
...
private:
std::vector<Property> m_properties;
};
那么具体来说,派生类可以包含基类对象吗?
由于我有一些背景知识,我已经看到这用于建模/镜像 XML 结构,但感觉该设计有点面对通常努力的 is-a-is-inheritance 和 has-a-is-composition 关系。