반복 문제
같은 생성, 공유, 알림 코드가 여러 곳에서 반복되는지 본다.
싱글톤, 팩토리, 옵저버, 모듈은 이름 목록이 아니라 반복되는 책임을 어디서 끊을지 판단하는 도구다.
같은 생성, 공유, 알림 코드가 여러 곳에서 반복되는지 본다.
하나로 묶을지, 만들기를 숨길지, 변화를 전파할지 정한다.
바뀌는 책임과 감춰야 할 책임을 다른 자리로 분리한다.
패턴을 붙인 뒤 코드가 더 읽기 쉬워졌는지 다시 확인한다.
설정, 로거처럼 하나만 있어야 한다.
Singleton타입별 생성 조건이 계속 늘어난다.
Factory한 변화가 여러 처리로 퍼져야 한다.
Observer내부 상태는 숨기고 API만 내보낸다.
Module한 번 쓰고 끝나는 코드에 구조만 커질 때
테스트와 호출부가 오히려 복잡해질 때
패턴 이름보다 책임 경계가 먼저 보일 때
반복을 줄이고 변경 지점을 좁힐 때
패턴을 먼저 외우지 말고, 반복되는 협력 모양을 찾은 뒤 가장 작은 책임 분리로 해결한다.