생성 패턴(Creational Pattern) : 객체가 생성 되는 과정의 유연성을 높이고 코드의 유지를 쉽게 함
- 팩토리 메서드 패턴(Factory Method Pattren) : 자식 클래스에서 어떤 객체를 생성할지 결정
- 추상 팩토리 패턴(Abstract Factory Pattren) : 구성 요소별로 객체의 집합을 생성
- 빌더 패턴(Builder Pattren) : 객체의 생성 과정과 표현 과정을 분리
- 프로토타입 패턴(Prototype Pattren) : 이미 만들어진 객체를 복제해서 생성
- 싱글톤 패턴(Singleton Pattren) : 생성자를 여러번 호출 해도 최초 생성 된 객체를 리턴해서 사용
구조 패턴(Structural Pattern) : 자료구조나 인터페이스 같이 프로그램의 구조를 설계하는데 활용하는 패턴
- 어댑터 패턴(Adapter Pattren) : 인터페이스가 호환되지 않는 클래스들을 같이 이용할 수 있도록 인터페이스를 덧 씌움
- 브릿지 패턴(Bridge Pattren) : 구현부에서 추상층을 분리
- 컴포지트 패턴(Composite Pattren) : 여러개의 객체를 묶어 하나의 객체로 다룰 수 있게 함
- 데코레이터 패턴(Decorator Pattren) : 기존 객체에 책임을 붙임. 기능 확장이 필요할 때 상속을 사용하지 않는 유연한 대안이 될 수 있음
- 퍼사드 패턴(Facade Pattren) : 많은 분량의 코드에 접근할 수 있는 단순한 인터페이스 제공
- 플라이웨이트 패턴(FlyWeight Pattren) : 유사한 객체들 사이에 많은 데이터를 공유해서 사용하도록 해서 메모리 사용량을 최소화함
- 프록시 패턴(Proxy Pattren) : 접근이 힘든 객체 또는 다른 객체와 이어지는 부분에 대한 인터페이스의 역할을 해줌
구현 패턴(Behavioral Pattern) : 반복적으로 사용되는 객체들의 상호작용을 패턴화
- 인터프리터 패턴(Interpreter Pattern) : 일련의 규칙으로 정의된 언어의 문법을 정의하고 해석하는데 사용
- 템플릿 메소드 패턴(Template Method Pattren) : 상위 클래스에서는 추상적으로 표현하고 구체적인 내용은 하위 클래스에서 결정
- 책임 연쇄 패턴(Chain of Responsibility Pattern) : 처리 객체들이 연결 되어 있고, 자신이 처리할 수 없는 내용은 연결 된 다음 처리 객체에게 위임
- 커맨드 패턴(Command Pattern) : 요청을 객체의 형태로 캡슐화. 각 명령이 들어오면 그에 맞는 서브 클래스를 선택해서 수행
- 중재자 패턴(Mediator Pattern) : 클래스간의 복잡한 상호 작용을 캡슐화 해서 객체간의 통신을 하는데 사용(직접 통신 없이 중재자를 통해 통신함)
- 메멘토 패턴(Memento Pattern) : 객체를 이전 상태로 되돌리는 기능을 제공. 클래스 설계 관점에서 객체의 정보를 저장
- 옵저버 패턴(Observer Pattern) : 객체에 변화가 일어났을 때 옵저버로 등록 된 객체에게 내용을 전달
- 비지터 패턴(Visitor Pattern) : 알고리즘을 객체에서 분리해서 별도의 비지터를 만들어 놓고 해당 클래스의 메소드가 각 클래스를 돌아다니면 작업을 수행
- 상태 패턴(State Pattern) : 동일한 동작을 상태에 따라 다르게 처리해야 될 때 상태 패턴 인터페이스의 파생 클래스로 각각의 구현
- 전략 패턴(Strategy Pattern) : 특정 계열의 알고리즘 군을 정의하고 캡슐화해서 같은 계열 안에서 상호 교체가 가능하게 만들어 줌
[참조]
https://realzero0.github.io/study/2017/06/12/%EB%94%94%EC%9E%90%EC%9D%B8-%ED%8C%A8%ED%84%B4-%EC%A0%95%EB%A6%AC.html
https://ko.wikipedia.org/wiki/%EB%94%94%EC%9E%90%EC%9D%B8_%ED%8C%A8%ED%84%B4_(%EC%B1%85)
https://ko.wikipedia.org/wiki/%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4_%EB%94%94%EC%9E%90%EC%9D%B8_%ED%8C%A8%ED%84%B4
'프로그래밍' 카테고리의 다른 글
Reactive Programming (0) | 2019.03.20 |
---|---|
객체 지향 프로그래밍 vs 함수형 프로그래밍 (0) | 2019.03.18 |
HTTP/2 (0) | 2019.03.04 |
HTTP와 HTTPS의 차이 (0) | 2019.03.04 |
객체지향 5대 원칙 - SOLID (0) | 2019.02.07 |