자격증/정보처리기사

[정처기] 4장 서버 프로그램 구현 - 디자인 패턴

gangee 2024. 7. 27. 20:04

목차

    728x90
    반응형

    1. 디자인 패턴

    • 모듈 간의 관계 및 인터페이스를 설계할 때 참조할 수 있는 전형적인 해결 방식 또는 예제
    • GoF의 디자인 패턴 : 생성 패턴, 구조 패턴, 행위 패턴

    2. 생성 패턴 (Creational Pattern)

    • 클래스나 객체의 생성과 참조 과정을 정의하는 패턴

    2-1. Abstract Factory (추상 팩토리)

    • 연관, 의존하는 객체들의 그룹으로 생성하여 추상적으로 표현

    2-2. Builder (빌더)

    • 작게 분리된 인스턴스를 건축하듯이 조합하여 객체 생성

    2-3. Factory Method (팩토리 메소드)

    • 서브 클래스에서 처리하도록 분리하여 캡슐화한 패턴
    • 가상 생성자 패턴

    2-4. Prototype (프로토타입)

    • 원본 객체를 복제하는 방법으로 객체를 생성하는 패턴

    2-5. Singleton (싱글톤) ⭐

    • 하나의 객체를 생성하면 어디든 참조 가능
    • 여러 프로세스에 동시 참조 불가능

    3. 구조 패턴 (Structural Pattern)

    • 클래스나 객체들을 조합하여 더 큰 구조로 만드는 패턴

    3-1. Adapter (어댑터)

    • 호환성 없는 클래스를 다른 클래스가 이용할 수 있도록 변환

    3-2. Bridge (브리지) ⭐

    • 구현부에서 추상층 분리, 서로 독립적 확장

    3-3. Composite (컴포지트)

    • 복합 객체와 단일 개체 구분 없이 다룸

    3-4. Decorator (데코레이터) ⭐

    • 객체 간의 결합으로 능동적으로 기능 확장

    3-5. Facade (퍼싸드)

    • 서브 클래스들의 기능을 간편하게 사용할 수 있도록 함
    • Wrapper 객체 필요

    3-6. Flyweight (플라이웨이트)

    • 메모리 절약 패턴

    3-7. Proxy ⭐

    • 객체 사이 인터페이스 역할, 대리자
    • 복잡한 관계 단순 정리
    • 외부에 세부적인 내용 숨김

    4. 행위 패턴 (Behavioral Pattern)

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

    4-1. 책임 연쇄

    • 객체들이 고리로 묶여있음

    4-2. Command

    • 객체의 형태로 캡슐화하여 재이용하거나 취소
    • 추상 클래스와 구체 클래스로 분리

    4-3. Interpreter

    • 언어에 문법 표현을 정의하는 패턴

    4-4. Iterator (반복자)

    • 내부구조 노출하지 않고 집합체 안에 들어있는 모든 항목 접근

    4-5. Mediator (중재자) ⭐

    • 객체 사이의 의존성 줄여 결합도 감소시킴
    • 중재자 두는 방식

    4-6. Memento (메멘토) ⭐

    • 이전 상태로 복구 UNDO 가능
    • Ctrl + Z 같은 되돌리기 기능

    4-7. Observer (옵서버) ⭐

    • 분산된 시스템 간에 이벤트를 생성, 발행(publish), 수신(subscribe) 할 때 이용

    4-8. Visitor (방문자) ⭐

    • 클래스에서 처리기능 분리
    • 새로운 연산 추가 가능
    728x90
    반응형