본문 바로가기
Design Pattern

Design Pattern

by orioncsy 2023. 5. 4.

Design Pattern

개념

Design Pattern

  • 객체 지향 프로그램 개발 과정에서 자주 발생하는 과제를 해결하기 위한 설계 방법
  • 과거에 프로그램 개발 과정의 설계 노하우를 바탕으로 재사용하기 좋은 형태로 묶어 정리한 것
  • 특정한 상황에서 구조적인 문제를 해결하는 방식을 제공
  • 구현이 아니라 설계 방법을 의미

목적

  • 재사용성, 호환성, 유지 보수

분류

생성 패턴

  • 객체의 생성 방식을 결정
  • 싱글톤 패턴, 팩토리 메서드 패턴

구조 패턴

  • 객체 간의 관계를 조직
  • 어댑터 패턴

행위 패턴

  • 객체의 행위를 조직, 관리, 연합
  • 옵저버 패턴, 전략패턴, 템플릿 메서드 패턴

싱글톤 패턴

개념

  • 하나의 인스턴스만 생성하여 사용하는 패턴
  • 인스턴스가 필요할 때 새로 생성하는 것이 아니라 하나만 생성하여서 기존 인스턴스를 사용

특징

  • 객체를 생성할 때마다 하나만 생성하여 메모리 낭비 예방
  • 싱글톤으로 구현한 인스턴스는 전역으로 취급하여 데이터 공유 가능
  • 싱글톤으로 구현한 인스턴스가 많이 사용되면 다른 클래스들 간의 결합도가 증가하여 OCP 원칙에 위배
  • 결합도가 증가하여 유지 및 보수와 테스트가 어려워진다.
  • DB 커넥션풀, 스레드풀, 캐시, 로그 기록 객체 등에 사용

팩토리 메서드 패턴

개념

  • 객체를 생성하는 부분을 하위 클래스에서 구현한 패턴

어댑터 패턴

개념

  • 클래스를 바로 사용할 수 없을 때 중간에서 변환해 주는 패턴

옵저버 패턴

개념

  • 한 객체의 상태가 변경되면 그 객체에 의존하는 다른 객체들에게 자동으로 정보가 갱신되도록 하는 패턴
  • 상태를 가지고 있는 주체 객체와 변경을 감지하는 관찰 객체로 구분
  • 정보를 전달할 때 전달 정보의 규모가 클수록 복잡

전략 패턴

개념

  • 어떤 동작을 수행하는 로직을 작성하고 이것을 캡슐화하여 관리하는 패턴

템플릿 메서드 패턴

개념

  • 로직을 단계별로 나눠야 할 때 사용하는 패턴
  • 로직의 변경이 잦을 수록 효율적이다.

Reference

https://ajdahrdl.tistory.com/200

'Design Pattern' 카테고리의 다른 글

Factory Method Pattern  (0) 2023.05.26
Template Method Pattern  (0) 2023.05.25
Singleton Pattern  (0) 2023.05.24
Adapter Pattern  (0) 2023.05.23