디자인 패턴 별 매우 간략한 설명이다.
객체를 생성하는데 관련된 패턴이다
관련된 객체들의 조합을 독립적으로 생성
복잡한 객체를 생성하는 클래스와, 표현하는 클래스를 분리하여, 동일한 절차에서도 서로 다른 표현을 생성
객체를 만들어내는 부분을 서브 클래스에 위임
필요에 따라 복제에 의한 객체를 생성
하나의 클래스에서 오직 하나의 인스턴스만 생성
프로그램 구조에 관련된 패턴이다
어떠한 클래스의 인터페이스를 다른 클래스에서 요구되는 인터페이스로 변환
구현부에서 추상층을 분리하여, 독립성 부여
트리 구조로 객체들을 엮어서, 클라이언트로 하여금 구별 없이 다루게 함
객체에 추가적인 요건을 동적으로 첨가
서브 시스템에 간략화된 인터페이스 제공
효율을 위해, 인스턴스를 가능한 대로 공유
대리로 작업을 수행함
객체들의 상호작용과 관련된 패턴이다
어떤 문제에 대해서 해결할 수 있는 상황에 았는 객체에게 책임을 전가
실행될 기능을 캡슐화함으로써 주어진 여러 기능을 실행할 수 있는 재사용성이 높은 클래스를 설계
문법 규칙을 클래스화 한 구조로, 일련의 규칙으로 정의된 문법적 언어를 해석
컬렉션 구현 방법을 노출시키지 않으면서도 그 집합체안에 들어있는 모든 항목에 접근
모든 클래스간의 상호작용을 캡슐화하여 하나의 클래스에 위임
캡슐화를 위반하지 않고 객체의 이전 상태를 저장하고 복원
지속적인 동기화를 위해, 객체 간 행동을 관찰하고 알림
내부의 상태가 변경 될 때 객체가 동작을 변경
객체가 할 수 있는 행위들 각각을 전략으로 만들어 놓고, 동적으로 행위의 수정이 필요한 경우 전략을 바꾸는 것만으로 행위의 수정이 가능
어떤 알고리즘이나 데이터구조에 대한 템플릿을 정의하고, 용도에 맞게 사용
방문자와 방문 공간을 분리하여, 방문 공간이 방문자를 맞이할 때, 이후에 대한 행동을 방문자에게 위임. 타입 체계 수정 없이 방문자는 새로운 연산 정의 가능