> For the complete documentation index, see [llms.txt](https://seokrae.gitbook.io/sr/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://seokrae.gitbook.io/sr/java-1/design/_types_of_design_patterns.md).

# Types of Design Patterns

## Intro

가장 많이 사용되고 익숙한 디자인 패턴에 대한 학습

## 객체 지향 프로그램의 디자인 패턴 분류

* **Creational**
* **Structural**
* **Behavioural**

## **Creational**

**Creational Design Patterns** 은 프로그램에서 **객체 생성 프로세스**를 **캡슐화**할 수 있는 방법을 제공한다.

* [Builder Pattern](/sr/java-1/design/creational/_builder.md)
* [Prototype Pattern](/sr/java-1/design/creational/_prototype.md)
* [Singleton Pattern](/sr/java-1/design/creational/_singleton.md)
* [Factory Pattern](/sr/java-1/design/creational/_factory.md)
* [Abstract Factory Pattern](/sr/java-1/design/creational/_abstract_factory.md)

## Structural

**Structural design Patterns**은 클래스의 구성(composition), 즉 `클래스`를 **구성하는 방법**과 관련이 있다.

* [Adapter Pattern](/sr/java-1/design/structural/_adapter.md)
* [Bridge Pattern](/sr/java-1/design/structural/_bridge.md)
* [Composite Pattern](/sr/java-1/design/structural/_composite.md)
* [**Decorator Pattern**](/sr/java-1/design/structural/_decorator.md)
* [Facade Pattern](/sr/java-1/design/structural/_facade.md)
* [Flyweight Pattern](/sr/java-1/design/structural/_flyweight.md)
* [**Proxy Pattern**](/sr/java-1/design/structural/_proxy.md)

## Behavioral

**Behavioral design patterns**는 `클래스`와 `객체` 간의 **상호작용**과 **책임위임**을 지시한다.

* [Chain of Responsibility Pattern](/sr/java-1/design/behavioural/_chain_of_responsibility.md)
* [Command Pattern](/sr/java-1/design/behavioural/_command.md)
* [**Interpreter Pattern**](/sr/java-1/design/behavioural/_interpreter.md)
* [Iterator Pattern](/sr/java-1/design/behavioural/_iterator.md)
* [Mediator Pattern](/sr/java-1/design/behavioural/_memento.md)
* [Memento Pattern](broken://pages/-Mhe-jK2MEHK6etUvd-E)
* [**Observer Pattern**](/sr/java-1/design/behavioural/_observer.md)
* [State Pattern](/sr/java-1/design/behavioural/_state.md)
* [Strategy Pattern](/sr/java-1/design/behavioural/_strategy.md)
* [Template Method Pattern](/sr/java-1/design/behavioural/_template_method.md)
* [**Visitor Pattern**](/sr/java-1/design/behavioural/_visitor.md)
