[정보처리기사] 디자인 패턴

junjun·2023년 9월 15일
0

정보처리기사

목록 보기
2/21

디자인 패턴 ( Design Pattern )

  • 개념 : 소프트웨어 공학의 소프트웨어 설계에서 공통으로 발생하는 문제에 대해 자주 쓰이는 설계 방법을 정리한 패턴

  • 이를 참고하여 개발할 경우, 개발의 효율성과 유지보수성, 운용성이 높아지며, 프로그램 최적화에 도움이 된다.

  • 구성요소
    : 패턴의 이름, 문제 및 배경, 솔루션, 사례, 결과, 샘플 코드로 구성되어 있다.

  • 유형

디자인 패턴의 유형

목적에 따라
생성 패턴 / 구조 패턴 / 행위 패턴으로 나뉘고

생성 패턴

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

구조 패턴

  • 더 큰 구조 형성을 목적으로 클래스나 객체의 조합을 다루는 패턴
    행위 패턴

행위 패턴

  • 클래스나 객체들이 상호작용하는 방법과 역할 분담을 다루는 패턴

범위에 따라
클래스 패턴 / 객체 패턴으로 나뉜다.

클래스 패턴

  • 클래스 간 관련성( 상속 관계를 다루는 패턴 )
  • 컴파일 타임에 정적으로 결정

객체 패턴

  • 객체 간 관련성을 다루는 패턴
  • 런타임에 동적으로 결정

디자인 패턴 종류

1) 생성 패턴

  • Builder Pattern
  • Prototype Pattern
  • Factory Method Pattern
  • Abstract Factory Pattern
  • Singleton Pattern
    2) 구조 패턴
  • Bridge Pattern
  • Decorator Pattern
  • Facade Pattern
  • Flyweight Pattern
  • Proxy Pattern
  • Composite Pattern
  • Adapter Pattern
    3) 행위 패턴
  • Mediator Pattern
  • Interpreter Pattern
  • Iterator Pattern
  • Template Method Pattern
  • Observer Pattern
  • State Pattern
  • Visitor Pattern
  • Command Pattern
  • Strategy Pattern
  • Memento Pattern
  • Chain of Responsibility Pattern

[ 생성 패턴 ]

  1. Builder Pattern

  • 복잡한 인스턴스를 조립하여 만드는 구조, 복합 객체를 생성할 때 객체를 생성하는 방법(과정)과 객체를 구현(표현) 하는 방법을 분리함으로써
    동일한 생성 절차에서 서로 다른 표현 결과를 만들 수 있는 디자인 패턴
  • 생성과 표기를 분리해서 복잡한 객체를 생성
  1. Prototype Pattern

  • 처음부터 일반적인 원형을 만들어놓고, 그것을 복사한 후 필요한 부분만 수정하여 사용하는 패턴, 생성할 객체의 원형을 제공하는 인스턴스에서 생성할 객체들의 타입이 결정되도록 설정하며 객체를 생성할 때 갖추어야 할 기본 형태가 있을 때 사용되는 디자인 패턴
  • 기존 객체를 복제함으로써 객체를 생성
  1. Factory Method Pattern
  • 상위 클래스에서 객체를 생성하는 인터페이스를 정의하고, 하위 클래스에서 인스턴스를 생성하도록 하는 방식으로,
    상위 클래스에서는 인스턴스를 만드는 방법만 결정하고,
    하위 클래스에서 그 데이터의 생성을 책임지고 조작하는 함수들을 오버라이딩하여 인터페이스와 실제 객체를 생성하는 클래스를 분리할 수 있는 특성을 갖는 디자인 패턴
  • 생성할 객체의 클래스를 국한하지 않고 객체를 생성
  1. Abstract Factory Pattern

  • 구체적인 클래스에 의존하지 않고 서로 연관되거나 의존적인 객체들의 조합을 만드는 인터페이스를 제공하는 패턴
  • 이 패턴을 통해 생성된 클래스에서는 사용자에게 인터페이스(API)를 제공하고, 구체적인 구현은 Concrete Product 클래스에서 이루어지는 특징을 갖는 디자인 패턴
  • 동일한 주제의 다른 팩토리를 묶음
  1. Singleton Pattern

  • 전역 변수를 사용하지 않고 객체를 하나만 생성하ㅗ록 하며, 생성된 객체를 어디에서든지 참조할 수 있도록 하는 디자인 패턴
  • 한 클래스에 한 객체만 존재하도록 제한

[ 구조 패턴 ]

  1. Bridge Pattern

  • 기능의 클래스 계층과 구현의 클래스 계층을 연결하고,
    구현부에서 추상 계층을 분리하여 추상화된 부분과 실제 구현 부분을 독립적으로 확장할 수 있는 디자인 패턴
  • 구현뿐만 아니라, 추상화된 부분까지 변경해야 하는 경우 활용
  1. Decorator Pattern

  • 기존에 구현되어 있는 클래스에 필요한 기능을 추가해 나가는 설계 패턴으로, 기능 확장이 필요할 때 객체 간의 결합을 통해 기능을 동적으로 유연하게 확장할 수 있게 해주어 상속의 대안으로 사용하는 디자인 패턴
  • 객체의 결합을 통해 기능을 동적으로 유연하게 확장

0개의 댓글