디자인 패턴은 객체 지향의 특성 중 상속과 인터페이스, 합성(객체를 속성으로 사용)을 이용한다.
| 객체 지향 프로그래밍 | 요리 |
|---|---|
| 4대 원칙(캡슐화, 상속, 추상화, 다형성) | 요리 도구 |
| 설계 원칙(SOLID) | 도구의 사용법 |
| 디자인 패턴 | 레시피 |
🙋🏻 프로그래밍을 하다 보면 여러 비슷한 문제에 직면하게 된다. 이런 상황에서 많은 개발자들이 고민하고 정제한 표준과도 같은 설계를 "디자인 패턴"이라 한다.
1. 재사용성: 반복적인 문제에 대한 일반적인 해결책을 제공하므로, 이를 재사용하여 유사한 상황에서 코드를 더 쉽게 작성
2. 가독성: 일정한 구조로 정리하고 명확하게 작성 → 개발자가 코드를 이해하고 유지보수하기 쉬움
3. 유지보수성: 코드를 쉽게 모듈화 할 수 있으며, 변경이 필요한 경우 해당 모듈만 수정하여 유지보수가 쉬워짐
4. 확장성: 새로운 기능을 추가하거나 변경할 때 디자인 패턴을 활용하여 기존 코드를 변경하지 않고도 새로운 기능을 통합할 수 있음
5. 안정성과 신뢰성: 수 많은 개발자가 인정한 모범 사례로 검증된 솔루션 제공
⇒ 하지만, 디자인 패턴은 모든 상황의 해결책은 아니다. 그 패턴이 "왜" 효율적인 방식인지 이해해야 한다.
GoF(Gang of Four)의 디자인패턴은 가장 많이 사용되는 23개의 디자인 패턴이다.

⭐️ 디자인 패턴은 대부분은 다형성을 활용하는 것이다.
[OOP] 디자인 패턴(Design Pattern)이란? - 장점 및 종류
출처: https://ittrue.tistory.com/550 [IT is True:티스토리]