디자인 패턴
창조 디자인 패턴
싱글 톤-하나의 클래스 인스턴스 만 작성하고 오브젝트에 대한 글로벌 액세스 지점을 제공하십시오.
팩토리 (Factory Method의 단순화 된 버전)-인스턴스화 로직을 클라이언트에 노출시키지 않고 객체를 생성하고 공통 인터페이스를 통해 새로 생성 된 객체를 참조합니다.
팩토리 메소드-오브젝트를 작성하기위한 인터페이스를 정의하지만 서브 클래스가 인스턴스화 할 클래스를 결정하고 공통 인터페이스를 통해 새로 작성된 오브젝트를 참조하도록합니다.
Abstract Factory-클래스를 명시 적으로 지정하지 않고 관련 객체 패밀리를 작성하기위한 인터페이스를 제공합니다.
Builder-객체를 생성하기위한 인스턴스를 정의하지만 서브 클래스가 인스턴스화 할 클래스를 결정하게하고 구성 프로세스를보다 세밀하게 제어 할 수 있습니다.
프로토 타입-프로토 타입 인스턴스를 사용하여 작성할 오브젝트의 종류를 지정하고이 프로토 타입을 복사하여 새 오브젝트를 작성하십시오.
행동 디자인 패턴
책임 체인-요청의 발신자를 수신자에게 첨부하는 것을 방지하여 다른 방법으로도 요청을 처리 할 수 있습니다. -개체가 체인의 일부가되고 개체 중 하나가 처리 할 때까지 체인을 통해 한 개체에서 다른 개체로 요청이 전송됩니다.
명령-개체에 요청을 캡슐화하고, 요청이 다른 클라이언트의 매개 변수화를 허용하고, 요청을 대기열에 저장할 수 있습니다.
통역사-언어가 주어지면, 표현을 사용하여 언어의 문장을 해석하는 해석기 / 문법을 언어로 표현, 도메인을 언어로, 언어를 문법으로, 문법을 계층 적 객체 지향 디자인으로 해석하는 해석기와 함께 표현을 정의하십시오.
반복자-기본 표현을 노출시키지 않고 집계 오브젝트의 요소에 순차적으로 액세스하는 방법을 제공합니다.
중재자-일련의 객체가 상호 작용하는 방식을 캡슐화하는 객체를 정의합니다. 중재자는 객체가 서로 명시 적으로 언급되지 않도록하여 느슨한 결합을 촉진하며, 상호 작용을 독립적으로 변화시킬 수 있습니다.
관찰자-하나의 오브젝트가 상태를 변경할 때 모든 종속 항목에 자동으로 알리고 업데이트되도록 오브젝트 간의 일대 다 종속성을 정의하십시오.
전략-알고리즘 제품군을 정의하고 각 알고리즘을 캡슐화하여 상호 교환 가능하게합니다. 전략을 사용하면 알고리즘을 사용하는 클라이언트와 알고리즘이 독립적으로 달라질 수 있습니다.
템플릿 방법-작업에서 알고리즘의 골격을 정의하여 일부 단계를 서브 클래스로 연기 / 템플릿 방법을 사용하면 서브 클래스에서 알고리즘의 특정 단계를 알고리즘 구조를 변경하지 않고도 재정의 할 수 있습니다.
방문자-오브젝트 구조의 요소에 대해 수행 할 조작을 나타냅니다. / 방문자는 조작하는 요소의 클래스를 변경하지 않고 새 조작을 정의 할 수 있습니다.
Null Object-지정된 유형의 개체가없는 경우 대리자로 개체를 제공합니다. Null 개체 패턴은 공동 작업자로부터 세부 정보를 숨기면서 지능적인 동작을 수행하지 않습니다.
구조 설계 패턴
어댑터-클래스의 인터페이스를 클라이언트가 기대하는 다른 인터페이스로 변환하십시오. / 어댑터는 호환되지 않는 인터페이스로 인해 클래스가 함께 작동하도록합니다.
브리지-개체를 트리 구조로 작성하여 전체 계층 구조를 나타냅니다. / Composite를 사용하면 클라이언트가 개별 객체와 객체 구성을 균일하게 처리 할 수 있습니다.
합성-개체를 트리 구조로 구성하여 전체 계층 구조를 나타냅니다. / Composite를 사용하면 클라이언트가 개별 객체와 객체 구성을 균일하게 처리 할 수 있습니다.
데코레이터-객체에 동적으로 추가 책임을 추가합니다.
Flyweight-공유를 사용하여 상태의 다른 부분이 다를 수있는 내부 상태의 일부를 공통으로 갖는 많은 수의 개체를 지원합니다.
Memento-캡슐화를 위반하지 않고 오브젝트의 내부 상태를 캡처하여 필요할 때 오브젝트를 초기 상태로 복원하는 수단을 제공합니다.
프록시-개체가 개체에 대한 참조를 제어 할 수 있도록 "자리 표시 자"를 제공합니다.