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