一般情况下,我们有以下文档类型:
这两个类都是抽象的,我们需要继承它们才能实现所需的功能:
接下来,我们有具体的文件:
所以,我们遇到了一个问题:
详细订单应从合并订单继承功能:
详细订单和合并订单都应该从抽象类继承:
请提出一个想法,如何实现这一目标。谢谢!
答案 0 :(得分:1)
我认为你应该考虑composition
Psuedo-ish代码就像是
class CDocument
{
public:
CDocument ( IDocumentHeader header, IDocumentDetails details ) :
this.header(header), this.details(details) {}
IDocumentHeader GetHeader() { return header; }
IDocumentDetails GetDetails() { return details; }
private:
IDocumentHeader header;
IDocumentDetails details;
};
不完全确定您的订单/订单详细信息关系,但您可以将订单作为CDocument订购,其中包含DocumentHeader实现和DocumentDetails的OrderDetail实现。
class CDocumentHeader : IDocumentHeader{};
class COrderDetail : IDocumentDetail{};
void Whatever()
{
CDocument order ( new DocumentHeader(), new OrderDetail() );
}