객체지향

[객체지향] 디자인 패턴

재담 2022. 4. 29. 00:14

디자인 패턴이란?

소프트웨어 개발 방법에서 사용되는 디자인 패턴은 프로그램 개발에서 자주 나타나는 문제를 해결하기 위한 방법 중 하나로, 과거의 소프트웨어 개발 과정에서 발견된 설계의 노하우를 축적하여 이름을 붙여, 이후에 재사용하기 좋은 형태로 특정의 규약을 묶어서 정리한 것이다.

 

 

디자인 패턴의 목적

소프트웨어의 재사용성을 높이고, 호환성유지 보수성을 보장하기 위해 사용한다.

 

 

디자인 패턴의 특징

디자인 패턴은 아이디어일 뿐, 특정한 구현이 아니다. 프로젝트에 항상 적용해야 하는 것은 아니지만 추후에 발생하는 문제를 해결하고 예방하기 위해 패턴을 만들어 둔 것이다.

 

 

디자인 패턴의 분류

디자인 패턴은 다음과 같은 3가지로 분류가 가능하다.

 

생성 패턴

생성 패턴은 객체의 생성 방식을 결정하는 패턴이다. 생성 패턴에는 다음과 같은 것들이 있다.

  • 추상 팩토리
  • 팩토리
  • 빌더
  • 프로토타입
  • 싱글톤

 

구조 패턴

구조 패턴은 객체 간의 관계를 조직하는 패턴이다. 구조 패턴에는 다음과 같은 것들이 있다.

  • 어댑터
  • 브리지
  • 컴포지트
  • 데코레이터
  • 파사드(Facade)
  • 플라이웨이트
  • 프록시

 

행위 패턴

행위 패턴은 객체의 행위를 조직, 관리, 연합하는 패턴이다. 행위 패턴에는 다음과 같은 것들이 있다.

  • 책임 체인
  • 커맨드
  • 인터프리터
  • 반복자
  • 중재자
  • 메멘토
  • 옵저버
  • 상태
  • 전략
  • 템플릿 메서드
  • 방문자

Reference