Inspiration
"어떤 사건이 발생했을 때 무언가 반응하게 하고싶다."
- 어떤 사건 : callback interface를 구현하는 주체. 주로 앱에서 벌어진 일.
- 반응 : interface를 구현할 때 override한 method (이것이 콜백메소드)
간단한 구현 순서는 아래와 같다.
* Callback 내부 인터페이스를 가지는 클래스(A)를 생성한다.
- 클래스 내에서 callback 인터페이스 타입의 멤버 객체를 생성한다. 이때 외부 클래스에서 사용할 method를 추상 메소드로 만든다.
- 외부 클래스와 연결할 수 있는 콜백 setter method를 생성한다.
- "사건(이벤트)"를 판단하는 조건을 포함한 method를 생성한다. 조건에 부합하면 callback 인터페이스의 추상 method를 호출한다.
* Callback을 사용할 외부 클래스를 생성한다.
- 클래스(A) 타입의 객체를 생성한다.
- 위에서 만든 객체를 이용해 callback 인터페이스 타입의 멤버를 생성한다. 생성을 위해서는 callback 인터페이스의 추상 메소드를 반드시 override해 구현해야 한다.
- 클래스(A)의 콜백 setter method를 이용해 위 멤버를 등록한다. 준비완료!
- 이벤트 발생시점에 도달하면 override한 동작이 수행된다.
[결과]
Current sum is : 55 and exceeded : 5
Current sum is : 66 and exceeded : 16
Current sum is : 78 and exceeded : 28
Total is : 78