你如何在ruby中创建一个界面?

时间:2012-04-27 04:42:22

标签: ruby

我来自Java,我想知道ruby中是否存在接口?你怎么能模仿Java界面提供的契约行为?

例如:

interface ContactService {
    public boolean successful(Contract contract);
}

1 个答案:

答案 0 :(得分:2)

Ruby中没有真正的接口概念。相反,人们倾向于只编写不关心它们所操作对象类型的通用方法,而只是使用对象需要实现的一些特定方法。

例如:

def add(a,b)
  a+b
end

add方法不关心它的参数是整数,字符串还是数组。它们只需要是一个实现+运算符的对象。

def calltwice(obj)
  obj.call
  obj.call
end

calltwice方法不关心obj是lambda,proc还是某个自定义类。它只关心对象有一个call方法。

您可以通过告诉用户代码中的哪些方法将被称为应该如何操作来非正式地在注释中定义接口。