2012-04-27 15 views
2

私はJavaから来て、インタフェースがルビに存在するかどうか疑問に思っていますか? Javaインターフェイスが提供する契約上の動作をどのように模倣することができますか?例えばルビーでどのようにインターフェイスを作成しますか?

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

[Rubyのjavaインターフェイスと同等のものは?](http://stackoverflow.com/questions/4437291/what-is-java-interface-equivalent-in-ruby) –

答えて

2

Rubyでのインターフェイスの本当の概念はありません。代わりに、人々は、操作しているオブジェクトの種類を気にせず、オブジェクトが実装する必要のある特定のメソッドセットを使用するだけの一般的なメソッドを作成する傾向があります。例えば

:その引数は整数、文字列、または配列である場合

def add(a,b) 
    a+b 
end 

add方法は気にしません。それらは、+演算子を実装するオブジェクトでなければなりません。 objはラムダ、PROC、またはいくつかのカスタムクラスであれば

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

calltwice方法は気にしません。オブジェクトにはcallメソッドがあるだけです。

コメント内のインターフェイスを非形式的に定義するには、コードのユーザーにどのように動作させるべきかを指示します。

関連する問題