// 함수 포인터 기반의 이벤트 핸들링 기법

// MFC, QT, IOS 방식의 이벤트 핸들링 기법을 사용

 

#include <iostream>

using namespace std;

 

class Dialog {

 

public:

        void close() { cout << "Dialog close" << endl; }

};

 

class Button {

        Dialog* pDlg;

        void (Dialog::*handler)();

 

public:

        void setHandler(Dialog* p, void(Dialog::*h)()) {

               pDlg=p;

               handler=h;

        }

 

        void click() { (pDlg->*handler)(); }

};

 

int main(void) {

        Dialog dlg;

        Button btnClose;

        btnClose.setHandler(&dlg, &Dialog::close);

 

        getchar();

        btnClose.click();

}

'Developer > Design Patterns' 카테고리의 다른 글

Template Method Pattern  (0) 2014.05.18
범용 함수 포인터의 설계  (0) 2014.05.18
인터페이스 기반의 객체의 이벤트 처리  (0) 2014.05.18
State Pattern  (0) 2014.05.18
Strong Pointer & Weak Pointer  (0) 2014.05.18
Posted by No names
,