感觉就像我走到了尽头。如果我理解它,那么如果我遵循Law of Demeter我永远不会创建一个返回对象的方法然后客户端代码调用它。我只是想着工厂模式总是返回一个对象。是的,有一些返回对象的mapper类。收藏怎么样?
答案 0 :(得分:13)
你误解了Law of Demeter,并将其应用到了有用之外:
更正式地说,函数的Demeter法则要求对象O的方法M只能调用以下类型对象的方法:
- O本身
- M的参数
- 在M
中创建/实例化的任何对象- O的直接组件对象
- 一个全局变量,可由O访问,范围为M
特别是工厂用于创建对象,它们创建的对象类型是其公共接口的一部分。因此,上面允许调用工厂创建的对象的方法。