项目 - 库存 - 关系,哪一个应该知道另一个?

Ska*_*One 1 c++ design-patterns class

编码可以包含6个项目的库存可能看起来像这样:

class Inventory {
    private:
        Item[6] m_items;
};
Run Code Online (Sandbox Code Playgroud)

另一方面,项目看起来像这样:

class Item {
    private:
        Inventory* m_parent;
};
Run Code Online (Sandbox Code Playgroud)

但是,显然这两个班级都不能相互认识.一个解决方案是一个公共基类,但这两个类没有任何共同之处,它会导致更多问题,例如:我无法m_parent->addItem(this);Item构造函数调用.

Ben*_*Ben 5

一个项目在逻辑上是完整的.项目在一个根本没有库存概念的系统中值得建模.商品甚至可能不在库存中.理论上甚至可能存在多个库存,具体取决于您正在建模的项目和库存类型.

另一方面,库存仅用于包含物品.它目前可能没有任何项目,但这本身就是库存的核心属性.

上述考虑使我得出结论,清单应该知道项目的概念以及它所拥有的特定项目.虽然项目应该被实施为完全忘记,不仅仅是它们所处的库存,而是库存的概念.