어떤 Product를 만들지가 바뀔 때 Creator 하위 클래스가 생성을 결정하게 합니다.
패턴 선택 기준
패턴 결합 분리
팩토리, 싱글턴, 어댑터, 옵저버, 전략은 서로 다른 변경 압력을 다룹니다. 먼저 어떤 책임이 자주 흔들리는지 확인합니다.
설정, 로거처럼 하나의 인스턴스가 필요할 때 생성자를 막고 getInstance로 접근합니다.
OldPaymentGateway처럼 메서드 모양이 다른 객체를 NewPaymentGateway 계약에 맞춥니다.
Subject의 상태 변화가 생기면 등록된 Observer가 update로 각각 반응합니다.
결제 방식처럼 알고리즘을 실행 시점에 교체해야 할 때 Context가 인터페이스에만 의존합니다.