디자인 패턴 - (4) 행위 패턴

박영준·2023년 1월 11일
0

Java

목록 보기
40/112

1. '행위 패턴' 이란?

  • 객체나 클래스 사이의 알고리즘이나 책임 분배에 관련된 패턴

  • 한 객체가 혼자 수행할 수 없는 작업을 여러 개의 객체로 어떻게 분배하는지,
    이와 동시에, 객체 사이의 결합도 최소화하는 것에 중점을 둠.

2. 종류

1) 책임 연쇄 (Chain of Responsibility)

  • 요청을 처리할 수 있는 객체가 둘 이상 존재하여
    한 객체가 처리하지 못하면 다음 객체로 넘어가는 형태의 패턴

  • 요청을 처리할 수 있는 각 객체들이 고리(Chain)로 묶여 있어
    요청이 해결될 때까지 고리를 따라 책임이 넘어간다.

2) 커맨드 (Command)

  • 요청을 객체의 형태로 캡슐화하여
    재이용하거나 취소할 수 있도록
    요청에 필요한 정보를 저장하거나 로그에 남기는 패턴

  • 요청에 사용되는 각종 명령어들을 추상 클래스와 구체 클래스로 분리하여 단순화한다.

3) 인터프리터 (Interpreter)

  • 언어에 문법 표현을 정의하는 패턴

  • SQL이나 통신 프로토콜과 같은 것을 개발할 때 사용

4) 이터레이터 (Iterator, 반복자)

5) 미디에이터 (Mediator, 중재자)

  • 수많은 객체들 간의 복잡한 상호작용(Interface)을 캡슐화하여 객체로 정의하는 패턴

  • 객체 사이의 의존성을 줄여, 결합도를 ↓

  • 중재자는 객체 간의 통제와 지시의 역할을 수행

6) 메멘토 (Memento)

  • 특정 시점에서의 객체 내부 상태를 객체화함으로써
    이후 요청에 따라 객체를 해당 시점의 상태로 돌릴 수 있는 기능을 제공하는 패턴

  • Ctrl + Z와 같은 되돌리기 기능을 개발할 때 주로 이용

7) 옵서버 (Observer)

  • 한 객체의 상태가 변화하면
    객체에 상속되어 있는 다른 객체들에게 변화된 상태를 전달하는 패턴

  • 주로 분산된 시스템 간에 이벤트를 생성, 발행(Publish)하고
    이를 수신(Subscribe)해야 할 때 이용

8) 스테이트 (State, 상태)

  • 객체의 상태에 따라, 동일한 동작을 다르게 처리해야 할 때 사용하는 패턴

  • 객체 상태를 캡슐화하고, 이를 참조하는 방식으로 처리

9) 스트래티지 (Strategy, 전략)

  • 동일한 계열의 알고리즘들을 개별적으로 캡슐화하여 상호 교환할 수 있게 정의하는 패턴이다.
    클라이언트는 독립적으로 원하는 알고리즘을 선택하여 사용할 수 있으며, 클라이언트에 영향 없이 알고리즘의 변경이 가능하다.

10) 템플릿 메서드 (Template Method)

  • 상위 클래스에서 골격을 정의하고,
    하위 클래스에서 세부 처리를 구체화하는 패턴

  • 유사한 서브 클래스를 묶어
    공통된 내용을 상위 클래스에서 정의함으로써
    코드의 양을 줄이고 유지보수를 용이하게 해준다.

11) 비지터 (Visitor, 방문자)

  • 각 클래스들의 데이터 구조에서 처리 기능을 분리하여, 별도의 클래스로 구성하는 패턴

  • 분리된 처리 기능은 각 클래스를 방문(Visit)하여 수행


참고: 디자인 패턴(Design Pattern)이란?
참고: 디자인 패턴 - 행위 패턴

profile
개발자로 거듭나기!

0개의 댓글