9

感觉我已经走到了死胡同。如果我理解正确,那么如果我遵循得墨忒耳法则,我将永远无法创建一个返回对象的方法,然后客户端代码会调用它。我只是在考虑总是返回一个对象的工厂模式。是的,有返回对象的映射器类。那么收藏呢?

4

1 回答 1

14

您误解了得墨忒耳法则,并且将其应用到了有用的范围之外:

更正式地说,函数的得墨忒耳定律要求对象 O 的方法 M 只能调用以下类型对象的方法:

  • O本身
  • M的参数
  • 在 M 中创建/实例化的任何对象
  • O 的直接组件对象
  • 一个全局变量,可由 O 访问,在 M 的范围内

特别是工厂用于创建对象,它们创建的对象类型是公共接口的一部分。因此,上述允许调用由工厂创建的对象的方法。

于 2011-02-19T09:57:59.883 回答