2014년 6월 18일 수요일

[Java] 콜백(Call Back)



콜백(Call Back)


조금은 낯설지도 있지만, 알고 있으면 유용한 디자인패턴인 콜백(CallBack) 패턴에 대해서 알아보록 하겠습니다. 

"콜백(CallBack)의 정의는

호출자(Caller)가 피호출자(Callee)를 호출하는 것이 아니라 
피호출자(Callee)가 호출자(Caller)를 호출하는 것을 말한다. "

쉽게 말해서 어떤 일을 처리 할 때에 그 일이 끝났을 때, 다른일을 처리하는 메서드를 밖에서 구현 해놓았다가 필요시에 사용한다는 것입니다.


보통 비동기 처리 시스템에서 많이 사용되는 기법이다. 지금 설명하고 있는 콜백(CallBack) 패턴은 한번 알아두면은 자주 유용하게 사용하는 방법이기에 꼭 알아두기를 바랍니다.


코드의 재사용이 높지만, 개인적인 생각일수도 있지만, 어떤 디자인 패턴이든 마찬가지겠지만, 잦은 사용은 복잡해진다는 단점이 있습니다.






활용예제


BlogTest .class


public class BlogTest {


        public void test() {

                SomeClass someClass = new SomeClass(someCallBack);
                someClass.doSome();
        }

        private CallBack someCallBack = new CallBack() {

                @Override
                public void callBackMethod(Object obj) {

                        String result = (String) obj;


                        System.out.println(result);


                }

        };

}


---------------------------------------------------------------------------------------------


SomeClass.class


public class SomeClass {


        private CallBack someCallBack;


        public SomeClass(CallBack someCallBack) {

                this.someCallBack = someCallBack;
        }

        public void doSome() {


                // working...


                String result = "Hello CallBack";


                someCallBack.callBackMethod(result);


        }

}


---------------------------------------------------------------------------------------------


CallBack.interface

public interface CallBack {


        void callBackMethod(Object obj);


}





댓글 없음:

댓글 쓰기