STUDY

[정처기] 1과목 요구사항 확인 디자인 패턴 총정리, 쉽게 암기하는 법

univus 2022. 10. 19. 15:46

수제비 2022 정보처리기사 실기 교재 개념 정리한 내용입니다.

 

 

 

디자인 패턴 유형

목적

  • 생성
  • 구조
  • 행위

범위

  • 클래스 : 컴파일 타임
  • 객체 : 런타임에 동적으로 결정

 

 

디자인 패턴 종류

1. 생성 패턴(5가지 : 프로토 팩토리에서 빌더 싱글 추상화 그려줌)

  1. prototype : 원형 만들어두고, 복사해서 수정해서 사용
  2. factory method : 상위 클래스에서 객체 생성 인터페이스 정의, 하위 클래스에서 인스턴스 생성, 객체 클래스 국한하지 않고 객체 생성
  3. builder복잡한 인스턴스 조립, 생성과 표기를 분리
  4. singleton : 전역변수 사용x, 객체를 하나만 생성, 한 클래스에 한 객체만 존재하도록
  5. abstract factory : 서로 연관되거나 의존적인 객체들의 조합, 인터페이스(API) 제공, 구체적인 구현은 concrete product클래스에서, 동일 주제의 다른 팩토리 묶음

 

2. 구조 패턴(7가지 : abcdffp)

  1. adapter : 기존에 생성된 클래스 재사용 가능하도록 중간에서 맞춰주는 역할, 상속이용 클래스/위임이용 인스턴스, 인터페이스 덧씌움
  2. bridge : 기능과 구현 연결, 추상 분리, 추상화와 실제 구현 부분을 독립적으로 확장
  3. composite : 트리 구조로 부분- 전체 계층 표현, 단일 객체와 복합 개체를 동일하게 취급
  4. decorator : 기존에 구현되어 있는 클래스에 필요 기능 추가, 상속의 대안
  5. facade : 복잡한 시스템에 단순하고 통합된 인터페이스 제공, 결합도 낮춤, 시스템 구조 파악 쉽게
  6. flyweight : 여러 개의 가상 인스턴스 제공하여 메모리 절감, 클래스 경량화
  7. proxy : 실제 객체에 대한 대리 객체, 실제 객체에 접근 이전에 필요한 행동 가능, 메모리 아끼고 정보 은닉

 

3. 행위 패턴(11가지 :  미인 아이템을 얻고 옵저버 상태가 됐는데 이유는 방문자에게 강요명령 전략을 써서 메멘토 체인 판매하려고)

  1. mediator : 객체 수 너무 많아지지 않게 느슨하게 통제하는 중재자, 통신의 빈도수 줄이기
  2. interpreter : 언어의 다양한 해석, 구체적으로 구문 나누고 해석을 맡는 클래스 작성, 여러 형태의 언어 구문 해석하도록, 문법 자체를 캡슐화
  3. iterator :컬렉션 구현 방법 노출x(내부 구조 노출x), 내부 모든 항목에 접근 방법 제공
  4. template method : 상위 클래스(추상)에서 기능 골격 제공, 하위 클래스(구체)의 메서드에서 세부 처리 구체화, 코드 양 줄이고 유지보수 용이, 상위작업 구조 유지하면서 일부분만 캡슐화한 서브 클래스로 작업의 일부분을 수행
  5. observer : 한 객체 상태 바뀌면 의존하는 다른 객체에게 연락, 자동으로 내용 갱신, 일대 다의 의존성
  6. state : 객체 상태를 캡슐화하여 클래스화해서 참조하게 함
  7. visitor : 처리 기능 분리하여 별도 클래스로, 이 클래스의 메서드가 각 클래스를 돌아다니며 특정 작업 수행, 객체 구조 변경x 기능만 추가확장
  8. command : 실행될 기능을 캡슐화, 재사용성 높은 클래스 설계, 하나의 추상클래스에 메서드 만들고 명령 들어오면 서브클래스가 선택되어 실행
  9. strategy : 알고리즘을 캡슐화, 동적으로 행위를 자유롭게 변환
  10. memento : 객체의 정보 저장할 때, 객체 이전 상태로 복구시킬 때 undo 가능
  11. chain of responsibility : 연결이 하드코딩되어 있을 때 동적으로 연결되어 있는 경우 다르게 처리하도록, 한 요청을 2개 이상의 객체에서 처리