디자인 패턴 종류

Dahui Kim·2023년 8월 7일
0

디자인패턴

목록 보기
2/4
post-thumbnail

생성패턴(Creational Pattern)

인스턴스를 만드는 절차를 추상화하는 패턴, 객체를 생성/합성하는 방법이나 객체의 표현 방법과 sw시스템을 분리해준다.

  • 클래스 생성 패턴 : 인스턴스로 만들 클래스를 다양하게 만들기 위한 용도로 상속을 사용
  • 객체 생성 패턴 : 인스턴스화 작업을 다른 객체에게 떠넘김
  • 특징
    • 시스템이 어떤 구체 클래스를 사용하는지에 대한 정보를 캡슐화한다.

    • 클래스의 인스턴스들이 어떻게 만들고 어떻게 서로 맞붙는지에 대한 부분을 완전히 숨긴다.

      ⇒ 무엇이 생성되고, 누가 생성하고, 어떻게 생성되는지, 언제 생성되는지 결정에 대한 유연성 확보

  • 종류
    • 팩토리 메서드 : 상위 클래스는 인터페이스 정의, 객체 생성은 하위 클래스
    • 추상팩토리 : 하위클래스에 의존하지 않는 형태
    • 싱글톤 : 하나의 인스턴스 만을 가짐
    • 프로토타입 : 원본 객체를 복제
    • 빌더 : 객체의 생성 과정과 표현 방법을 분리

행위 패턴

클래스나 객체들이 서로 상호작용하는 방법, 주로 여러 객체로 분리해 결합도를 낮춤

  • 종류
    • 인터프리터 : 맞춤법 검사
    • 템플릿 메서드 : 팩토리 메서드와 유사
    • 커맨드 : 명령어를 객체 형태로 캡슐화 → 요청 필요 정보 저장 or 로그에 기록
    • 반복자 : 접근 자주하는 객체에 동일한 인터페이스를 사용(순차적 접근)
    • 중재자 : 많은 객체들 사이 상호작용 캡슐화 → 의존성 줄여 결합도 감소
    • 메멘토 : 내부 상태를 특정 시점에 객체화, 필요에 따라 되돌림
    • 옵저버 : 객체 상태를 관측하다 변화하면 상속되어있는 다른 객체에 상태 전달
    • 상태 : 객체 상태에 따른 동작
    • 전략 : 동일 계열 알고리즘 개별적으로 객체화하여 상호교환
    • visitor : 데이터 구조와 기능을 분리, 각 클래스를 방문하여 기능 수행
    • chain of responsibility : 요청이 해결될 때까지 다음 체인으로 책임을 넘기는 패턴

구조 패턴

클래스, 객체들간의 관계나 인터페이스를 개선하거나 결합하여 더 큰 구조를 만드는 패턴

  • 종류
    • 어댑터 : 호환성이 없는 인터페이스를 변환
    • 파사드 : 서브 클래스들 상위에 Wrapper 객체(통합 인터페이스 제공)를 구성→서브 클래스 기능 이용
    • 브릿지 : 기능과 구현을 별로 클래스로 분리
    • 컴포지트 : 단일 객체와 복합 객체를 구분 없이 다룸, 트리구조
    • 데코레이터 : 다른 객체를 덧붙여 확장
    • 플라이웨이트 : 객체를 가능한 공유해 사용 → 메모리 절약
    • 프록시 : 접근 어려운 객체 사이 인터페이스 역할
profile
긍정적인 생각, 적극적인 생활

0개의 댓글