Rev Notebook

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

by Rev_

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

  • 생성 패턴 (Creational Pattern)
  • 구조 패턴 (Structural Pattern)
  • 행위 패턴 (Behavior Pattern)

 

생성 패턴

 : 객체의 생성과 관련된 패턴

  • 추상 팩토리(Abstract Factory) : 동일한 주제의 다른 팩토리를 묶어줌
  • 팩토리 메소드(Factory Method) : 생성할 객체의 클래스를 국한하지 않고 객체 생성
  • 싱글톤(Singleton) : 한 클래스에 하나의 객체만 존재하도록 제한
  • 빌더(Builder) : 생성과 표기를 분리해 복잡한 객체 생성
  • 프로토타입(Prototype) : 기존 객체를 복제함으로써 객체 생성

 

구조 패턴

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

  • 컴포지트(Composite) : 단일 객체와 그 객체를 가지는 집합 객체를 같은 타입으로 취급하며, 트리 구조로 객체들을 엮는 패턴
  • 퍼싸드(Facade) : 많은 분량의 코드에 접근할 수 있는 단순한 인터페이스 제공
  • 프록시(Proxy) : 접근이 힘든 객체에 대한 대역 제공
  • 브리지(Bridge) : 추상화와 구현을 분리
  • 데코레이터(Decorator) : 기존 객체의 메소드에 새로운 행동을 추가하거나 오버라이드
  • 플라이웨이트(Flyweight) : 다수의 유사한 객체 생성

 

행위 패턴

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

  • 커맨드(Command) : 추상 클래스에 메서드를 하나 만들고, 각 명령이 들어오면 그에 맞는 서브 클래스가 선택되어 실행되는 것
  • 옵서버(Observer) : 어떤 클래스에 변화가 일어났을 때, 이를 감지하여 다른 클래스에 알려주는 것
  • 템플릿 메소드(Template Meothods) : 상위 클래스에서는 추상적으로 표현, 그 구체적인 내용은 하위 클래스에서 결정
  • 인터프리터(Interpreter) : 언어 규칙을 나타내는 클래스 이용
  • 책임 연쇄(Chain of Responsibility) : 요청을 처리하는 객체들끼리 연결고리를 만들어 내부적으로 전달
  • 반복자(Iterator) : 서로 다른 구조를 가지고 있는 저장 객체에 접근 가능, 접근 기능과 자료구조를 분리시켜서 객체화
  • 중재자(mediator) : 객체들간의 상호작용을 캡슐화, 통제 집중화
  • 메멘토(Memento) : 상태값을 미리 저장/기록 해두었다가 복구
  • 상태(State) : 객체의 내부 상태에 따라 행위 변경
  • 전략(Strategy) : 다양한 알고리즘 각각을 하나의 클래스로 캡슐화
  • 방문자(Visitor) : 방문을 통해 수행할 수 있는 환경으로 오퍼레이션을 별도의 클래스에 새롭게 정의

블로그의 정보

Hi Rev

Rev_

활동하기