C/C++ 디자인 패턴 (10) — 퍼사드(Facade)

사진 썸네일 하나를 만들려면 파일을 읽고, 포맷에 맞게 디코딩하고, 비율을 유지하며 줄이고, JPEG로 인코딩해서 저장해야 한다. 이 다섯 단계를 화면마다 복사해 두면 순서나 품질 설정이 조금씩 달라지고, 하위 라이브러리를 바꿀…

Continue ReadingC/C++ 디자인 패턴 (10) — 퍼사드(Facade)

C++ 예제로 배우는 소프트웨어 설계 기법 (14) — 알림 센터(NotificationCenter)

9편의 리스너와 핸들러는 메뉴 항목처럼 이벤트를 보내는 객체에 직접 등록해야 했다. 배터리 부족이나 테마 변경처럼 발신자가 하나로 정해지지 않거나, 수신자가 발신자 객체에 접근할 수 없는 이벤트에는 맞지 않는다. iOS·macOS의 NSNotificationCenter는…

Continue ReadingC++ 예제로 배우는 소프트웨어 설계 기법 (14) — 알림 센터(NotificationCenter)

C++ 예제로 배우는 소프트웨어 설계 기법 (2) — 시계와 타이머 콜백(Clock)

Win32 SetTimer 같은 C 타이머 API는 콜백에 타이머 id만 넘겨준다. 시계 객체 여러 개가 각자 타이머를 걸면, static 콜백 안에서는 어느 객체의 타이머가 울렸는지 알 수 없다. 1편의 Thread는 void*로…

Continue ReadingC++ 예제로 배우는 소프트웨어 설계 기법 (2) — 시계와 타이머 콜백(Clock)