2012-04-27 2 views
2

Java에서 왔고 인터페이스가 루비에 존재하는지 궁금합니다. 자바 인터페이스가 제공하는 계약상의 행동을 어떻게 모방 할 수 있습니까? 예를 들어루비에서 인터페이스를 만드는 방법은 무엇입니까?

:

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

[가능한 Ruby의 java 인터페이스는 무엇입니까?] (http://stackoverflow.com/questions/4437291/what-is-java-interface-equivalent-in-ruby) –

답변

2

루비에서 인터페이스의 실제 개념이 없습니다. 대신, 사람들은 작업중인 객체의 유형을 신경 쓰지 않는 일반 메소드를 작성하고 객체가 구현해야하는 특정 메소드 세트를 사용하는 경향이 있습니다. 예를 들어

:

def add(a,b) 
    a+b 
end 

인수는 정수, 문자열, 또는 배열이있는 경우 add 방법은 상관하지 않는다. 그들은 단지 + 연산자를 구현하는 객체 여야합니다. obj는 람다, PROC, 또는 사용자 정의 클래스 인 경우

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

calltwice 방법은 상관하지 않는다. 그것은 단지 객체가 call 메소드를 가지고 있다고 생각합니다.

비공식적으로 인터페이스에 주석을 정의 할 수 있습니다. 코드를 사용자에게 알려서 어떻게 행동해야 하는지를 알려줍니다.

관련 문제