'디자인 패턴' 개발자를 살아가면서 많이 들어봤던 단어이지만 그에 따라서 이해하기가 정말 어려운 단어이기도 합니다.
'디자인 패턴' 단순하게 이야기 하자면 '패턴' 이라는 말에 주목하면 된다. 지금까지 개발을 해왔던 사람들이 고심고심하여 만들어지고 만들어졌던 몇가지 일정한 패턴 중에 하나를 선택/개발하여 올바른 설계를 해라 라는 의도로 만들어진 패턴들을 '디자인 패턴' 이라고 합니다.
그렇다면 디자인 패턴에서는 3가지 구조로 나뉩니다.
1. Context
문제발생 상황 기술 > 패턴이 적용될 상황 기술
패턴은 상황에 맞게 써야 됨. 항상 유효하지 않는다.
2. Problem
패턴 적용으로 해결되어야 할 디자인 이슈들을 기술
여러 제약사항과 영향력도 문제 해결을 위해 고려
3. Solution
문제를 해결하도록 설계를 구성하는 요소들과 그 요소들 사이의 관계, 책임, 협력 기술
Solution은 구체적인 구현 방법 및 다양한 상황에 적용할 수 있는 템플릿
디자인 패턴
솔루션사업에서도 기존 솔루션을 가지며 그걸 토대로 커스터마이징으로 개발을 진행합니다. 마찬가지로 이미 오랜시간동안 여러 프로젝트에서 재사용 및 유효성은 입증이 되었으며 신뢰할 수 있는 솔루션 패턴이라고 생각하시면 됩니다.
디자인 패턴에는 총 3가지의 카테고리가 있습니다.
이들은 인스터스에 관한 생성, 구조화, 행동과 관련이 있습니다.
1. 생성 패턴 (Creational Pattern)
- 객체 생성 Pattern으로 객체의 생성 및 조합을 캡슐화해 객체가 생성되거나 변경되어도 프로그램에 영향을 미치지 않게 하는 유연성을 제공하는 패턴
2. 구조 패턴 (Structural Pattern)
- 클래스나 객체를 합성에 관해 더 큰 구조로 만드는 패턴입니다.
3. 행동 패턴 (Behavioral Pattern)
- 객체나 클래스 사이에서 상호작용하는 방법과 책임을 분산하는 방법을 정의하는 패턴입니다.
생성 패턴 (Creational Pattern) | 구조 패턴 (Structural Pattern) | 행동 패턴 (Behavioral Pattern) |
Singleton | Adapter | Command |
Abstarct Factory | Composite | Interpreter |
Factroy Method | Decorator | iterator |
Builder | Facade | Mediator |
protoType | Flyweight | Memento |
proxy | Observer | |
State | ||
Strategy | ||
Template Method |
위에 표는 3가지 디자인 패턴의 카테고리에 종류에 대해서 정리한 표 입니다.
'java > 기본용어' 카테고리의 다른 글
[SPRING] 의존성 주입 DI(Dependency Injection) 란? (0) | 2021.04.16 |
---|---|
[자바] 컬렉션(Collection) framework 설명 및 예시 (0) | 2021.03.29 |
[자바] Static(스태틱) 란? (0) | 2020.08.12 |