인터페이스는 누가 구현할 것인가에 대해서는 제약이 없다.
꼭 새로운 클래스가 만들어져 인터페이스를 구현할 필요없이 기존에 클래스가 있다면 그 클래스에서 구현하면 되는것이다.
이벤트 처리 2 - 리스너 인터페이스 구현에서 한것 처럼 새로운 클래스를 만들어서 이를 구현할 필요없이 액티비티에서 바로 구현할 수 있는 것이다.
public class HandleEvent extends Activity implements View.OnTouchListener
위와 같이 선언하면 액티비티가 인터페이스를 구현 할 수 있다.
구현이 끝난후
vm.setOnTouchListener(TouchListener)을
vm.setOnTouchListener(this)
로 바꾸어 자신이 이벤트를 구현했다고 등록만 해주면 같은 결과가 나오는 것이다.
하지만 만약 액티비티가 여러개라면 이 리스너를 분리하여 옮겨야 한다.
독립성이 떨어지는 것이다.
또한 뷰 역시 액티비티 처럼 리스너 인터페이스를 구현 할 수 있다.
implements 를 이용해서 누구든 얼마든지 리스너 인터페이스를 구현 할 수 있는 것이다.