객체 생성 주체
생성 방식이 클라이언트 코드에 새어 나오지 않도록 책임을 옮깁니다.
Factory Method
서브클래스가 Product 생성을 결정합니다.
Singleton
전역 설정처럼 하나의 인스턴스만 허용합니다.
팩토리, 싱글턴, 어댑터, 옵저버, 전략은 서로 다른 설계 압력을 다루며 TypeScript의 인터페이스로 경계를 선명하게 만들 수 있습니다.
생성 방식이 클라이언트 코드에 새어 나오지 않도록 책임을 옮깁니다.
이미 존재하는 객체를 클라이언트가 기대하는 모양으로 감쌉니다.
상태 변화 알림이나 알고리즘 교체처럼 실행 중 행동을 분리합니다.
객체 생성이 문제면 생성 패턴, 인터페이스 호환이 문제면 구조 패턴, 실행 중 행동 변화가 문제면 행위 패턴을 먼저 검토합니다.