자바 디자인 패턴 Iterator, 순서대로 지정해서 처리하기 Adapter, 바꿔서 재이용하기 하위 클래스에게 위임 Template Method, 하위 클래스에서 처리하기 Factory Method, 하위클래스에 위임하기 인스턴스 생성 관련 패턴 Singleton, 하나만 생성하기 Prototype, 복사해서 인스턴스 만들기 Builder, 복잡한 객체 조립하기 Abstract Factory, 객체 조합하기 분리 관련 패턴 Bridge, 기능 구현과 추가 분리하기 Strategy, 알고리즘 동채로 바꾸기 동일시 하기 Composite, 그릇과 내용물 동일하게 하기 Decorator, 장식과 내용물 동일하게 하기 구조를 돌아다니기 Vistor, 데이터 구조 돌아다니기 Chain of responsibility, 책임 떠넘기기 단순화하기 Facade, 처리하는 창구 만들기 Mediator, 책임 떠넘기기 상태 관리 Observer , 상태 관찰하기 Memento, 상태 저장 State, 상태 관리 낭비 없애기 Flyweight, 책임 떠넘기기 Proxy, 책임 떠넘기기 클래스로 표현하기 Command, 명령을 커맨드로 표현하기 Interpreter, 명령을 커맨드로 표현하기