Observer

Observer는 상태 변화를 구독자에게 통지하는 일대다 관계로 결합을 끊는다. Subject는 누가 듣는지 모른 채 통지만 한다. EventEmitter, RxJS, 이벤트 기반 아키텍처가 모두 여기서 확장된다. 브로커를 매개하는 pub/sub와는 구분된다.

2024년 3월 17일 · 약 3분 읽기

Strategy

Strategy는 알고리즘군을 같은 인터페이스로 캡슐화해 런타임에 교체한다. if/switch 분기 수정 대신 전략 추가로 확장한다. 일급 함수가 있는 언어에서는 별도 Strategy 클래스가 함수 하나로 흡수된다.

2024년 3월 3일 · 약 3분 읽기

Facade

Facade는 복잡한 서브시스템에 단순한 진입점을 제공해 클라이언트와 내부 구현의 결합을 끊는다. 서비스 레이어, 라이브러리 SDK가 사실상 Facade다. Adapter는 인터페이스 변환, Mediator는 양방향 조정이라는 점에서 구분된다.

2024년 2월 25일 · 약 3분 읽기

Decorator

Decorator는 상속의 조합 폭발을 조합으로 대체한다. 같은 인터페이스를 유지하는 래퍼를 런타임에 겹쳐 기능을 동적으로 더한다. java.io, Python 함수 데코레이터, 웹 미들웨어 체인이 모두 같은 의도의 변주다.

2024년 2월 18일 · 약 3분 읽기