我有一个简单的Store类,其中包含一个Inventory. Inventory包含 s 的列表Item。为了修改Items 中的一个Inventory,我必须写:
Store store( /*parameters*/ );
store.accessInventory(/*password*/).accessItem(/*item name*/).setPrice(9.50);
据我了解,这违反了得墨忒耳法则,因为Store必须通过Inventory并进入Item才能调用setPrice()。
我想调和这种违法行为与典型案例中的违法行为,即纸童和客户。在报童的例子中,报童通过假设他会用钱包付款而对客户“了解”太多。如果客户的付款方式发生变化,报童也必须改变。
我的代码中的哪些假设可能会导致类似纸男孩示例中遇到的问题?
我知道法律实际上更像是一个指导方针,在这种情况下遵守它可能不是最好的主意,但我想在继续之前至少了解一下法律。谢谢。