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