delegate 개념

공개 포스팅 2010. 9. 23. 12:02



 XCode 를 접하면서 delegate란 개념이 많이 나오는데 한번에 와닿지가 않아서 많이 해맸습니다.
 c, c++ 의 개념에서 찾자면 인터페이스 구현정도가 될꺼 같습니다..

// 마우스와 관련한 메시지와 관련된 클래스를 정의 합니다.
class IMouseDelegate
{
     virtual void Click() = 0;
};

// 마우스와 관련된 메시지를 받을 클래스를 정의 합니다..
class User : public IMouseDelegate
{
     virtual void Click()
    {
           // 클릭
     }};

// 마우스와 관련된 메시지를 송신해줄 객체입니다.
class System
{
pubic:
     IMouseDelegate* delegate;

public:
      void CheckMouse()
     {
           delegate->Click();
     }
 }; 
 
void main()
{
          System system;
          User user;

         // system의 delegate에 메시지를 받을 객체는 user 객체라는 것을 알려줍니다.
         system.delegate = & user;

         // system 객체에서 마우스를 검사합니다.
         system.CheckMouse();   
}


Posted by great-artist
,