정보처리기사[실기]

[개념정리] 디자인 패턴 (keyword 암기)

microsaurs 2024. 10. 15. 14:20

💡 디자인 패턴이란?

객체 지향 프로그래밍 설계를 할 때 자주 발생하는 문제들에 대해 재사용할 수 있도록 만들어놓은 패턴 모음

 

✔️ 생성패턴

→ 객체의 인스턴스 생성에 관여하고 클래스 정의와 객체 생성 방식을 구조화, 캡슐화하는 패턴 

Abrtract Factory
추상 팩토리
Builder
빌더
Factory Method
팩토리 메서드
Prototype
프로토타입
Singleton
싱글톤
구체적인 클래스 의존 X 조립 상위 클래스에서 객체 생성
하위 클래스에서 인스턴스 생성
원형 복사(클론) 하나의 객체만 생성

 

 

✔️ 구조패턴

→ 구조가 복잡한 시스템을 개발바하기 쉽도록 클래스나 객체들을 조합하여 더 큰 구조로 만드는 패턴

Adapter
어댑터
Bridge
브릿지
Composite
컴포지트
Decorator
데코레이터
Facade
퍼싸드
Flyweight
플라이웨이트
Proxy
프록시
중간 역할
(변환)
연결
구현, 추상화 분리
부분 - 전체
구분 X 사용
장식 추가
(능동적 기능 확장)
단순 + 통합된
인터페이스 제공
경량화 목적 대리 객체

 

 

✔️ 행위패턴

→ 클래스나 객체들이 서로 상호작용하는 방법이나 책임 분배 방법을 정의하는 패턴

Chain of Responsibility
책임 연쇄
Command
커맨드
Interpreter
인터프리터
Iterator
반복자
Mediator
중재자
Memento
메멘토
한 객체가 처리 X
➡️ 다른 객체로 전달
필요 정보 저장, 로그 언어 문법 표현 정의 동일 인터페이스 사용 통제 및 지시 역할 
중재자
undo, 복원

 

Observer
옵저버
State
상태
Strategy
전략
Template Method
템플릿 메서드
Visitor
방문자
상태변경
➡️ 다른 객체 연락
상태에 따라 처리 캡슐화된 클래스
필요시 교환
상위 골격 구성
하위 세부 처리 (구체화)
클래스를 돌아다님
처리 기능 분리

 

 

[요약 정리]

💡 생성패턴 Creational Pattern

  1. Abstract Factory : 구체적인 클래스에 의존 X, 서로 연관되거나 의존적인 객체들의 조합을 만드는 인터페이스를 제공하는 패턴
  2. Builder : 생성 과정과 표현 방법 분리 ➡️ 동일한 생성 절차에서 서로 다른 표현 결과 만들 수 있게 하는 패턴
  3. Factory Method : 상위 클래스에서 객체 생성 인터페이스 정의, 하위 클래스에서 인스턴스 생성하는 패턴
  4. Prototype : 원본 객체 복제하여 새 객체 생성할 수 있도록 하는 패턴
  5. Singleton : 유일한 하나의 인스턴스를 보장하도록 하는 패턴

 

💡 구조패턴 Structural Pattern

  1. Bridge : 추상과 구현을 분리해서 결합도를 낮춘 패턴 (독립적 확장 가능)
  2. Decorator : 객체 간의 결합을 통해 능동적 기능 확장 가능한 패턴, 소스 변경하지 않고 기능 확장 가능
  3. Facade : 하나의 인터페이스를 토앻 느슨한 결합을 제공하는 패턴
  4. Flyweight : 대량의 작은 객체들을 공유하는 패턴 (메모리 절약)
  5. Proxy : 대리인이 대신 그 일을 처리하는 패턴
  6. Composite : 개별 객체와 복합 객체를 클라이언트에서 동일하게 사용하도록 하는 패턴
  7. Adapter : 호환성이 없는 클래스들의 인터페이스를 다른 클래스가 이용할 수 있도록 변환해주는 패턴

 

💡 행위패턴 Behavior Pattern

  1. Interpreter : 언어에 문법 표현을 정의하는 패턴 (언어 규칙 클래스 이용)
  2. Templete Method : 상위 클래스에서 골격 정의 , 하위 클래스에서 세부 처리 구체화하는 구조의 패턴
  3. Chain of Responsibility : 객체끼리 연결 고리를 만들어 내부적으로 전달하는 패턴
  4. Command : 요청 자체를 캡슐화해 파라미터로 넘기는 패턴
  5. Iterator : 내부 표현 숨기고 순회하는 패턴, 접근이 잦은 객체에 대해 동일한 인터페이스 사용하도록 하는 패턴
  6. Mediator : 객체 간의 상호작용을 캡슐화한 패턴
  7. Memento : undo, 상태 값을 미리 저장해두었다가 복구, 복원하는 패턴
  8. Observer : 상태가 변할 때 의존자들에게 알리고 자동으로 업데이트하는 패턴
  9. State : 객체 내부 상태에 따라서 행위를 변경하는 패턴
  10. Strategy : 다양한 알고리즘을 개별 캡슐화하여 상호 교환, 알고리즘 대체가 가능하도록 하는 패턴
  11. Visitor : 오퍼레이션을 별도의 클래스에 새롭게 정의한 패턴