我来自 Java,想知道 ruby 中是否存在接口?如何模仿 Java 接口提供的契约行为?
例如:
interface ContactService {
public boolean successful(Contract contract);
}
我来自 Java,想知道 ruby 中是否存在接口?如何模仿 Java 接口提供的契约行为?
例如:
interface ContactService {
public boolean successful(Contract contract);
}
Ruby 中没有真正的接口概念。相反,人们倾向于只编写不关心他们正在操作的对象类型的通用方法,而只使用对象需要实现的一些特定方法集。
例如:
def add(a,b)
a+b
end
该add
方法不关心它的参数是整数、字符串还是数组。它们只需要是一些实现+
操作符的对象。
def calltwice(obj)
obj.call
obj.call
end
该calltwice
方法不关心obj
是 lambda、proc 还是某个自定义类。它只关心对象是否有call
方法。
你可以在注释中非正式地定义一个接口,告诉你的代码的用户哪些方法将被调用以及它们应该如何表现。