2013-10-14 6 views

답변

1

일반적으로 인터페이스는 응용 프로그램에서 두 섹션 (모듈)을 연결하는 데 사용됩니다. 나는 그것을 하나 또는 여러 개의 메소드 포인터라고 부른다. 두 모듈 사이의 통신을하기 위해 표준 방식이 있어야하기 때문에 다른 모듈이나 응용 프로그램과 계약을 체결 할 때 인터페이스에 많은 어려움을 겪을 수 있습니다.


OS에서 특정 파일을 수신 대기하는 모듈을 프로그래밍하고 내 모듈을 사용한다고 가정 해 보겠습니다. 그래서 어떻게 서로를 이해할 필요가 있니?! 가능한 해결책이있다면, 당신은 내 모듈에 메소드 포인터 (인터페이스)를 넘겨 줄 것이고, 그런 다음 모듈은 이벤트가 발생할 때 포인터를 트리거 (호출) 할 것이다. 그래서 우리는 여기에 가장 먼저해야 할 것은 위의 인터페이스에서 Listener Interface

//code: java 
public interface Listener{ 
void onEvent(String fileName); 
} 

를 인터페이스 (방법 포인터)를 정의하고, 정의 된 하나 개의 방법이있다. 파일이 변경되면 onEvent 메서드가 호출됩니다. 이 메소드에는 파일 이름을 가리키는 인수 String fileName이 변경되었습니다.


여기 내 모듈은 인터페이스를 사용 (호출)하고 모듈은이를 구현합니다. 그래서 이것은 요점입니다, 우리는 서로 인터페이스로 상호 작용할 수 있습니다.

그런 시나리오의 경우 UML 다이어그램은 이와 같습니다. 내 모듈에 인터페이스가 필요합니다. 모듈이 인터페이스를 구현합니다. 당신이 보는대로 Ring-Bell model

위 인터페이스 코드 예를 들어, 인터페이스는 포인터 liek 역할을, 아무것도 자체가 없다, 그러나 대상 클래스가 onEevent라는 메소드를 가지고있는 대상 클래스 (인 MyModule)를 확인합니다.

나는 약간의 손을 줄 수 있었으면 좋겠다.

+0

설명해 주셔서 감사합니다. 그러나 나는 여전히 의심하고있다. 이 개념은 파이썬이나 자바, C#에서도 작동합니다 ... 파이썬에서 똑같은 일을 할 수 있습니까? –

+0

모듈/라이브러리를 구현할 때 인터페이스는 매우 유용합니다. 복잡한 시스템 전체가 일부 인터페이스로 알려져 있기 때문입니다. 그리고 이것은 Java에만 국한되지 않지만, C#은 인터페이스 대신 델리게이트를 사용하며, 인터페이스도 지원합니다. –