// 함수 포인터 기반의 이벤트 핸들링 기법
// 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 |