추상 팩토리(Abstract Factory)
관련성 있는 객체들의 집합을 생성하는 인터페이스를 제공하는 패턴
빌더(Builder)
생성 과정과 표현 방법을 분리하는 패턴
팩토리 메서드(Factory Method)
객체를 생성하는 인터페이스는 정해놓지만 생성하는 인스턴스는 서브클래스에서 생성하는 패턴
프로토타입(Prototype)
생성되는 객체의 종류를 명새하는데 원형을 복사해 새로운 객체를 생성하는 패턴
싱글턴(Singleton)
클래스의 인스턴스를 하나임을 보장하며 인스턴스에 접근할수있는 접촉점을 제공하는 패턴
적응자(Adapter)
클래스의 인터페이스를 사용자가 원하는 다른 인터페이스로 변환하는 패턴
브릿지(Bridge)
추상층을 분리하여 독립적으로 변형할수 있게 하는 패턴
복합체(Composite)
객체들의 관계를 트리구조로 작성하는 패턴, 단일 개체와 복합 개체를 모두 동일하게 다룸
장식자(Decorator)
상황에 따라 객체에 책임을 덧붙이는 패턴, 기능 확장이 필요할때 서브 클래싱의 대안이 될 수 있음.
퍼사드(Facade)
서브 시스템의 인터페이스 집합을 하나의 통합된 인터페이스로 제공하는 패턴
플라이급(Flyweight)
크기가 작은 객체 여러개를 공유를 통해 효율적으로 지원하는 패턴
프록시(Proxy)
어떤 객체에 접근하는 것을 통제하기 위해 Delegate 혹은 PlaceHolder 를 제공하는 패턴
책임 연쇄(Chain Responsiblity)
요청을 보내는 객체와 받는 객체의 결합을 피하는 패턴, 요청을 받을수 있는 객체를 연쇄적으로 묶고 처리할 처리할 객체를 만날때까지 연쇄적으로 요청을 전달하는 패턴
명령(Command)
객체의 요청을 캡슐화 하여 요청이 다른 사용자의 매개변수화, 요청 저장, 로킹, 연산 취수를 지원하는 패턴
해석자(Interpreter)
언어의 문법을 위한 표현 수단을 정의, 정의된 표현수단으로 작성된 문장을 해석하는 해석기를 정의하는 패턴
반복자(Iterator)
내부 표현부를 노출하지 않고 객체의 원소들을 순차적으로 접근할수 있는 방법을 제공하는 패턴
중재자(Mediator)
집합에 속해있는 객체들을 상호작용을 캡슐화, 객체들이 서로 직접적으로 참조하지 않게하는 패턴
감시자(Observer)
일 대 다의 의존 관계를 정의, 객체의 상태가 변할때 객체에 의존성을 가진 다른 객체들이 변화
상태(State)
객체의 내부상태에 따라 스스로 행동을 변경할수 있게 하는 패턴
전략(Stategy)
동일한 계열의 알고리즘군을 정의한 후 이들을 상호 교환하는 패턴
템플릿 메서드(Template Method)
알고리즘의 뼈대만 정의한 후 구체적인 처리는 서브클래스에서 하는 패턴
방문자(Visitor)
객체 구조를 이루는 원소에 대해 수행할 연산을 표현하는 패턴, 연산을 적용할 원소의 클래스를 변경하지 않고 새로운 연산을 사용하게 하는 패턴