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

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 : 오퍼레이션을 별도의 클래스에 새롭게 정의한 패턴
저작자표시 변경금지 (새창열림)

'정보처리기사[실기]' 카테고리의 다른 글

[개념정리] 럼바우 데이터 모델링  (0) 2024.10.15
[개념정리] 결합도와 응집도  (1) 2024.10.15
[6과목_프로그래밍 언어 활용] Python 예상 문제(수제비 카페)  (1) 2024.10.14
[6과목_프로그래밍 언어 활용] Python 예상 문제 (수제비카페)  (2) 2024.10.14
[Python] 24년 기출 문제 풀이 (1회, 2회)  (0) 2024.10.14
'정보처리기사[실기]' 카테고리의 다른 글
  • [개념정리] 럼바우 데이터 모델링
  • [개념정리] 결합도와 응집도
  • [6과목_프로그래밍 언어 활용] Python 예상 문제(수제비 카페)
  • [6과목_프로그래밍 언어 활용] Python 예상 문제 (수제비카페)
microsaurs
microsaurs
개발 스터디로그입니다. 공부한 내용을 정리해서 올립니다 ㅇ-ㅇ
  • microsaurs
    microsaurs.devlog
    microsaurs
  • 전체
    오늘
    어제
    • 분류 전체보기 (138)
      • Algorithm Study (39)
      • JAVA (8)
      • Swift (11)
      • Python (21)
      • CS (5)
      • React (3)
      • 리얼클래스 studylog (27)
      • 정보처리기사[실기] (23)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    타일러영어
    파이썬기초
    프로그래밍언어
    리얼클래스
    자바알고리즘
    알고리즘
    파이썬
    정보처리기사
    프로그래머스
    나도코딩
    영어회화
    The Office
    정처기실기
    더오피스
    ios프로그래밍을위한스위프트기초
    Java
    정보처리기사프로그래밍언어
    javaStudy
    javaalgorithm
    정보처리기사실기
    Python
    ios개발
    영어독학
    Algorithm
    SWIFT
    스위프트기초
    ios프로그래밍
    파이썬문법
    study
    리얼학습일기
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
microsaurs
[개념정리] 디자인 패턴 (keyword 암기)
상단으로

티스토리툴바