이 글은 어디까지나 디자인 패턴을 공부함에 있어 유용한 정보들을 정리해놓은 글이며, 아래 패턴 분류들에는 모두 디자인 패턴을 공부하면서 이해하기 쉽다고 생각한 글들의 링크를 걸어두었음.
디자인 패턴은 이 글에 있는 것이 전부가 아니며, 상당히 종류가 많으므로 적재적소에 필요한 디자인패턴을 적용하는 능력이 중요하다고 생각함.
게임 내내 존재할 플레이어 캐릭터를 오직 하나만 만들어질 수 있도록 보장함. 인스턴스는 private으로 선언하지만, public 메소드를 통해 전역적으로 접근 가능.(보통 static으로 선언하여 삭제하기 전까지 계속 상주한다.)
2개의 서로 호환되지 않는 인터페이스 사이에 새로운 클래스를 만들어서 연결되도록 함.
핸드폰 케이블의 5핀과 c타입 사이에 호환이 가능하게 해줄 어댑터. 5핀 케이블을 c타입에 연결하자고 5핀 케이블을 뜯어 고치기보단 어댑터를 사이에 끼우는 게 더 편리함.
객체의 행동을 저장하고 필요할 때 꺼내 쓰는 방식.
어떤 객체의 상태가 변할 때 그와 연관된 객체 들에게 알림을 보내는 디자인 패턴.
공통된 일은 템플릿 메소드에서 바로 구현, 하위 클래스에서 반드시 구현해야 하는 것은 abstract로 선언, 변경될 수도 있는 일은 훅 메소드로 구현.
하위 메소드는 템플릿 메소드를 상속받고 abstract를 반드시 구현, 그 외 자신이 해야 할 일을 추가 구현, 훅 메소드는 선택적으로 변경.