본문 바로가기
CS/JAVA

디자인 패턴이란?

by DYII 2022. 7. 27.
728x90

디자인 패턴이란

소프트웨어를 설계할 때 특정 맥락에서 자주 발생하는 문제들이 또 발생했을 때 재사용할 할 수 있는 훌륭한 해결책

목적

좋은 코드를 만들기 위해서 : 확장과 수정에 용이하여 설계 이후의 추가적인 유지 보수에 비용이 적게 들어가도록 한다.

SOLID 원칙을 지키는 것이 기본이다.

 

장점

1. 개발자 간의 원활한 의사소통

2. 소프트웨어 구조 파악 용이

3. 재사용을 통한 개발 시간 단축

4. 설계 변경 요청에 대한 유연한 대처

5. 불필요한 리소스 낭비 방지

 

단점

1. 객체지향 설계 / 구현 위주로 사용

2. 초기 투자 비용 부담

 

디자인 패턴 유형

1. 생성 패턴 (Creation Pattern)

 - 객체의 생성에 관련된 패턴으로 객체의 생성 로직을 숨김으로써 유연성을 향상시킴

 - 특정 객체가 생성되거나 변경되어도 프로그램 구조에 영향을 받지 않도록 함.

 - 싱글톤 패턴, 추상 팩토리 패턴, 빌더 패턴, 팩토리 메서드 패턴, 원형 패턴

 

2. 구조 패턴 (Structural Pattern)

  -  클래스와 객체를 더 큰 구조로 만들 수 있게 구성을 사용하는 패턴

  - 서로 다른 인터페이스를 지닌 2개의 객체를 묶어 단일 인터페이스로 제공하거나 서로 다른 객체들을 묶어 새로운 기능을 제공하는 패턴

  - 적응자 패턴, 브리지 패턴, 데코레이터 패턴, 퍼사드 패턴, 프록시 패턴

 

3. 행동 패턴 (Behavioral Pattern)

  - 객체들이 상호작용하는 방법과 역할을 분담하는 방법을 다룸. 

  - 한 객체가 혼자 수행할 수 없는 작업을 여러 개의 객체로 어떻게 분배할지, 동시에 객체 간의 결합도를 최소화한다.

  - 옵저버 패턴, 상태 패턴, 스트레이트지 패턴, 템플릿 패턴, 비지터 패턴, 역할 사슬 패턴, 커맨드 패턴, 인터프리터 패턴, 이터레이터 패턴, 미디에이터 패턴

 

728x90