【发布时间】:2016-11-12 09:05:41
【问题描述】:
在Ruby 中的OO 设计 一书中,Sandi Metz 说模块的主要用途是用它们实现鸭子类型并将它们包含在所需的每个类中。为什么 Ruby Kernel 是 Object 中包含的一个模块?据我所知,它没有在其他任何地方使用。使用模块有什么意义?
【问题讨论】:
-
我认为你是对的,它可能不会被认为是理想的 OO 设计,并且寻找理由来证明它的合理性可能是错误的。
-
你是对的,它几乎是反OO的。
Kernel包含所有那些为了方便而存在并忽略其接收者的“程序”(即不要对self做任何事情)。