디자인 패턴은 반복되는 변화 형태에 맞춰 선택한다

패턴 이름을 먼저 고르지 말고 무엇이 생성되고 교체되고 전달되는지부터 구분한다.

어떤 변화가 반복되는가?생성·교체·알림·기능 추가 중 하나를 선택
생성 복잡

Factory

호출부에서 구체 생성 규칙을 분리

알고리즘 교체

Strategy

같은 입력·출력 계약 아래 실행 방식을 교환

상태 알림

Observer

발행자가 구독자의 구체 타입을 모르게 전달

기능 덧붙임

Decorator

기존 계약을 유지하며 책임을 층층이 추가

핵심변형이 하나뿐인데 패턴을 도입하면 확장점이 아니라 이해 비용만 생긴다.