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构造函数调用.
一个项目在逻辑上是完整的.项目在一个根本没有库存概念的系统中值得建模.商品甚至可能不在库存中.理论上甚至可能存在多个库存,具体取决于您正在建模的项目和库存类型.
另一方面,库存仅用于包含物品.它目前可能没有任何项目,但这本身就是库存的核心属性.
上述考虑使我得出结论,清单应该知道项目的概念以及它所拥有的特定项目.虽然项目应该被实施为完全忘记,不仅仅是它们所处的库存,而是库存的概念.