공부, 자격증/정보처리기사

디자인 패턴의 종류

ccuccu 2023. 8. 17. 15:14

디자인 패턴: 소프트웨어 설계에서 공통으로 발생하는 문제에 대해 자주 쓰이는 설계 방법 정리

 

유형 - 생성 :

        - 구조 :

        - 행위 :

 

생성

  • Builder : 생성과 표기를 분리하여 복잡한 객체를 생성
  • ProtoType : 일반적인 원형을 만들고 복사한 후 필요한 부분만 수정하여 사용한다.
  • Factory Methode : 상위클래스에서 객체 생성 후 인터페이스를 정의하고, 하위클래스에서 인스턴스를 생성한다.
  • Abstract Factory : 구체적 클래스에 의존하지 않고, 서로 연관되거나 의존적인 객체들의 조합을 만드는 인터페이스를 제공한다.
  • Singleton : 전역변수를 사용해서 객체 생성, 생성된 객체는 어디서든 참조할 수 있다. (동시 참조는 X)

구조

  • Bridge : 기능의 클래스 계층과 구현된 클래스 계층을 연결하여 추상화된 부분과 실제 구현 부분을 독립적으로 확장할 수 있다.
  • Decorator : 기존 구현 클래스에 필요한 기능을 추가해나가는 설계 패턴
  • Facade : 복잡한 시스템에 대해 단순한 인터페이스를 제공하며 사용자와 시스템 간 또는 여타 시스템과의 결합도를 낮추어 시스템 구조에 대한 파악을 쉽게 한다.
  • Flyweight : 다수의 객체로 생성될 경우 모두가 갖는 본질적 요소를 클래스화 하여 공유한다.
  • Proxy : 실제 객체에 대한 대리 객체로 특정 객체로의 접근을 제어하기 위한 용도로 사용된다.
  • Composite : 객체들의 관계를 트리 구조로 구성하여 부분 - 전체 계층을 표현하는 패턴
  • Adapter : 기존에 생성된 객체들을 재사용할 수 있도록 중간에서 맞춰주는 역할을 하는 인터페이스를 만드는 패턴

행위

  • Mediator : 통신의 빈도수를 줄여 객체 지향 목표를 달성하게 해준다
  • Interpreter : 언어의 다양한 해석, 구체적인 부문으로 나누고 분리된 구문의 해석을 맡는 클래스를 각각 작성하여 여러 형태의 언어 구문을 해석할 수 있게 만든다.
  • Iterator : 내부 구조를 노출하지 않고, 복잡 객체의 원소를 순차적으로 접근 가능하게 해주는 패턴
  • Template Method : 상위 작업의 구조를 바꾸지 않으면서 서브 클래스로 작업의 일부를 수행한다.
  • Observer : 객체의 상태 변화에 따라 다른 객체의 상태도 연동한다.
  • State : 객체 상태를 캡슐화하여 클래스화 함으로써 그것을 참조하게 한다. 
  • Visitor : 특정 구조를 이루는 복합 객체의 원소 특성에 따라 동작을 수행할 수 있도록 지원
  • Command: 주어진 여러 기능을 재사용성이 높은 클래스를 설계하는 패턴
  • Starategy : 알고리즘 군을 정의하고 같은 알고리즘을 각각 하나의 클래스로 캡슐화, 필요할 때 서로 교환하여 사용할 수 있도록 함
  • Memento : 클래스 설계 관점에서 객체의 정보를 저장할 필요가 있을 때 적용하는 디자인 패턴
  • Chain of Responsiblity : 기능 처리의 연결 기능이 하드코딩 되어 있을 때 기능 처리의 연결 기능이 불가능한데, 동적으로 연결되어 있는 경우에 따라 다르게 처리될 수 있도록 연결

 

출처: [건기원] 2023 수제비 정보처리기사 실기 1+2권 세트

 

구매처 하단 링크

https://product.kyobobook.co.kr/detail/S000200847120

 

문제 시 게시물 삭제하겠습니다.