옵저버 패턴 예

핸드폰의 푸시 알람이 pub-sub 패턴 기반

event-driven architecture

다형적으로 IFundingCallback 인터페이스를 구현하는 구체 클래스 구현

subscribe()메서드는LogManager클래스의addHandler()메서드랑 역할이 똑같음- 바른 책임 연쇄 패턴 예 참고
- 구독자 추가
support()메서드는 후원하는 메서드, 후원하면 이 메서드 내부에서onMoneyRaised()콜백을 호출해 각 구독자에게 동작을 하게 함onMoneyRaised()다형적으로 호출되죠?

C 과목에서 로그 콜백 함수로 등록하는 예제랑 똑같음
아래는 함수 포인터로 콜백 함수 등록받는 예제
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <time.h>
#include "error_handler.h"
static void (*s_handler)(const char*) = NULL;
void register_error_handler(void (*handler)(const char* msg))
{
s_handler = handler;
}
void log_error(const char* msg)
{
if (s_handler != NULL) {
s_handler(msg);
}
}
void default_error_handler(const char* msg)
{
time_t now;
struct tm* local;
now = time(NULL);
local = localtime(&now);
fprintf(stderr, "[%02d:%02d:%02d] %s\n",
local->tm_hour, local->tm_min, local->tm_sec,
msg);
}