Design Pattern
Design Pattern
by orioncsy
2023. 5. 4.
Design Pattern
개념
Design Pattern
- 객체 지향 프로그램 개발 과정에서 자주 발생하는 과제를 해결하기 위한 설계 방법
- 과거에 프로그램 개발 과정의 설계 노하우를 바탕으로 재사용하기 좋은 형태로 묶어 정리한 것
- 특정한 상황에서 구조적인 문제를 해결하는 방식을 제공
- 구현이 아니라 설계 방법을 의미
목적
분류
생성 패턴
- 객체의 생성 방식을 결정
- 싱글톤 패턴, 팩토리 메서드 패턴
구조 패턴
행위 패턴
- 객체의 행위를 조직, 관리, 연합
- 옵저버 패턴, 전략패턴, 템플릿 메서드 패턴
싱글톤 패턴
개념
- 하나의 인스턴스만 생성하여 사용하는 패턴
- 인스턴스가 필요할 때 새로 생성하는 것이 아니라 하나만 생성하여서 기존 인스턴스를 사용
특징
- 객체를 생성할 때마다 하나만 생성하여 메모리 낭비 예방
- 싱글톤으로 구현한 인스턴스는 전역으로 취급하여 데이터 공유 가능
- 싱글톤으로 구현한 인스턴스가 많이 사용되면 다른 클래스들 간의 결합도가 증가하여 OCP 원칙에 위배
- 결합도가 증가하여 유지 및 보수와 테스트가 어려워진다.
- DB 커넥션풀, 스레드풀, 캐시, 로그 기록 객체 등에 사용
팩토리 메서드 패턴
개념
- 객체를 생성하는 부분을 하위 클래스에서 구현한 패턴
어댑터 패턴
개념
- 클래스를 바로 사용할 수 없을 때 중간에서 변환해 주는 패턴
옵저버 패턴
개념
- 한 객체의 상태가 변경되면 그 객체에 의존하는 다른 객체들에게 자동으로 정보가 갱신되도록 하는 패턴
- 상태를 가지고 있는 주체 객체와 변경을 감지하는 관찰 객체로 구분
- 정보를 전달할 때 전달 정보의 규모가 클수록 복잡
전략 패턴
개념
- 어떤 동작을 수행하는 로직을 작성하고 이것을 캡슐화하여 관리하는 패턴
템플릿 메서드 패턴
개념
- 로직을 단계별로 나눠야 할 때 사용하는 패턴
- 로직의 변경이 잦을 수록 효율적이다.
Reference
https://ajdahrdl.tistory.com/200