소프트웨어를 설계할 때 특정 맥락에서 자주 발생하는 고질적인 문제들이 또 발생햇을 떄 재사용할 수 있는 훌륭한 해결책. 여기서 중요한 것은 한 번 잘 만들어놓은 것을 처음부터 만들 필요가 없다는 것이다.이렇게 적어놓긴 했지만 사실 제일 중요한 것은 설계자들이 "올바른" 설계를 "빨리" 만들어 주는 것이다. 이 것을 진행하는데에 있어서 디자인 패턴이 사용되는 것이다.다음은 디자인 패턴이 구분되는 3가지 이다.
--------------------------------------------------------------------------------------------------
다음 네 가지 요소를 중점으로 보면 된다.
1. 패턴 이름 (Pattern Name)
- 패턴 이름은 해당 패턴의 솔류션을 담고 있는 경우가 많음.따라서 설계에 대한 생각을 더욱 쉽게 할 수 있고, 개발자들 간 소통이 원할해짐.
2. 문제 (Problem)
- 언제 패턴을 사용하였는가를 서술하며 해결할 문제와 그 배경을 뜻함. 문제를 제시함으로써 패턴이 무엇이 적용될 지 정해짐.
3. 해법(Solution) 및 구현(Implementation)
- 앞서 2번에서 다룬 문제에 대하여 어떻게 해결할 수 있을 것인가에 대한 해결책 제시 및 구현.
4. 결과(Consequence)
- 디자인 패턴을 적용해서 얻는 결과와 장단점.