디자인 패턴이란?
소프트웨어를 설계할 때 특정 맥락에서 자주 발생하는 문제들이 또 발생했을 때 재사용할 수 있는 해결책
디자인 패턴의 구조
1. 콘텍스트(context)
- 문제가 발생하는 여러 상황 -> 패턴이 적용될 수 있는 상황
- 경우에 따라서는 패턴이 유용하지 못한 상황을 지칭하기도 함
2. 문제(problem)
- 패턴이 적용되어 해결할 필요가 있는 여러 디자인 이슈
- 이 때 여러 제약 사항과 영향력 또한 고려해야 함
3. 해결(Solution)
- 설계를 구성하는 요소들과 요소들 사이의 관계, 책임, 협력 관계
- 구체적인 구현 방법이나 언어에 의존적이지 않으며 다양한 상황에 적용할 수 있는 템플릿