디자인 패턴은 "일반적인 설계 문제를 특정한 맥락으로 해결하기 위해 객체와 클래스를 전달하는 방법을 맞춘 것" 입니다 -GoF

디자인 패턴

디자인 패턴은 공통적인 애플리케이션 설계 문제의 해법입니다. 객체 지향 프로그래밍에서는 대 단위 소프트웨어 아키텍쳐보다는 보통 객체 생성 및 객체 간 상호 작용 문제를 해결하는데 디자인 패턴을 주로 활용합니다. 즉. 소프트웨어 설계를 할 때 또는 프로그램 개발 과정에서 특정 부분에서 많이 발생하는 문제를 정리하여 상황에 따라 해결할 수 있는 해결책을 마련하는 것이다.

디자인 패턴 유형

생성 패턴(Creational pattern)

  • 객체 생성, 초기화, 클래스 선택에 관한 패턴
    • 싱글톤 패턴, 팩토리 패턴, 빌더, 프로토 타입, 추상팩토리 패턴

행동 패턴(behavioral pattern)

  • 객체 간 소통 메시징, 상호 작용에 관한 패턴
    • 옵처버 패턴, 상태 패턴, 스트레이트지 패턴, 템플릿 패턴, 커맨드 패턴

구조 패턴(Structural pattern)

  • 클래스와 객체 관계를 조직하는 패턴, 관련된 객체를 서로 묶어 원하는 로직을 구현하는 방법
    • 장식자 패턴, 프록시 패턴, 퍼사드 패턴 어댑터 패턴