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