http://blog.naver.com/PostView.nhn?blogId=2hyoin&logNo=220398943180
프로그래밍 언어는 사용자에게 구현을 하기 위한 여러 기능들을 제공합니다. 콜백(Callback) 함수는 WinAPI를 이용한 윈도우즈 프로그램 개발에서 많이 보셨을 수도 있겠지만, 기본적인 함수 호출의 개념의 반대라고 보시면 됩니다.
![]() |
| Callee에게 기능을 호출하는 Caller |
![]() |
| Caller에게 기능을 수행하라고 알려주는 Callee |
class Callee {
interface Callback { // 인터페이스는 외부에 구현해도 상관 없습니다.
void callbackMethod();
}
private boolean m_condition;
private Callback m_callback;
public Callee() {
m_condition = false;
m_callback = null;
}
public setCallback(Callback callback) {
this.m_callback = callback;
}
// 콜백 메서드를 호출할 수 있는지 확인
private checkCondition() {
if(m_condition && (m_callback != null))
m_callback.callbackMethod(); // 가능하면 콜백 메서드 호출
}
...
}
class Caller {
private Callee callee;
private int value;
public Caller() {
Callee.Callback callback = new Callee.Callback() {
@Override
public void callbackMethod() {
// 이곳에 콜백 메서드에서 할일을 구현 (값 전달, 복사...)
}
callee.setCallback(callback);
...
}
...
}
Designed by sketchbooks.co.kr / sketchbook5 board skin
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5