【发布时间】:2017-06-29 12:29:34
【问题描述】:
如果我有以下实现特定接口的 ruby 模块(在这种情况下为apply)
module FooApplier
def apply
foo
end
end
...所有其他“应用程序”都是类,而不是模块,是否会误导其他工程师将FooApplier 传递给期望apply 接口的接收器?
让我们假设使用FooApplier 的应用程序运行得非常好,但我们也假设其他工程师没有花时间倾注我代码的每个最后一个字节。如果他们决定将.new 之类的内容发送到FooApplier,这会以某种方式引发一些微妙的错误,是我的设计有责任,还是工程师做出假设而忽略了阅读我的代码?
【问题讨论】:
标签: ruby interface polymorphism duck-typing