[Design Pattern] 행동 패턴

rara_kim·2022년 9월 1일
0

Java

목록 보기
26/39

행동 패턴 - 전략 패턴(Strategy)

  • 클라이언트에 독립적으로 문제 해결 전략을 바꾸고 싶을 때 사용한다.
  • 다양한 문제해결 방법을 제공해야 할 때 사용한다.

  • 일반적으로 알고리즘을 바꿀 때 많이 사용되는 패턴이다.

GitHub: 전략 패턴 구현 코드

행동 패턴 - 템플릿 메서드 패턴(Template Method)

  • 문제해결의 큰 흐름은 유지하고, 단계별 처리는 하위 클래스에 위임하고자 할 때 사용한다.
  • 구체적인 처리방법은 하위 클래스로 위임하고자 할 때 사용한다.
  • 예외의 경우가 생길 수 있는 경우에는 템플릿 메서드가 아닌 전략 패턴을 사용하는 것이 좋다.

템플릿 메서드 패턴은 어떤 작업을 처리하는 일부분을 서브 클래스로 캡슐화해 전체 일을 수행하는 구조는 바꾸지 않으면서 특정 단계에서 수행하는 내역을 바꾸는 패턴이다.
즉, 전체적으로는 동일하면서 부분적으로는 다른 구문으로 구성된 메서드의 코드 중복을 최소화 할 때 유용하다.

전략 패턴과 상당히 유사하다.
전략 패턴의 경우 전략 자체(특정 알고리즘)를 바꿔 사용한다면, 템플릿 메서드의 경우 전략과 앞뒤의 내용을 그대로 두고 그 중에서 메서드 하나 혹은 두 개를 하위클래스에 위임시킬 때 사용하는 방법이다.

GitHub: 템플릿 메서드 패턴 구현 코드

행동 패턴 - 책임 연쇄 패턴(Chain of responsibility)

  • 명령 객체와 일련의 처리 객체를 포함하는 디자인 패턴이다.
  • 각각의 처리 객체는 명령 객체를 처리할 수 있는 연산의 집합이고, 체인 안의 처리 객체가 핸들할 수 없는 명령은 다음 처리 객체로 넘겨진다.
  • 이 작동방식은 새로운 처리 객체부터 체인의 끝까지 다시 반복된다.

  • 메세지를 보내는 객체와 처리하는 객체를 분리하고 싶을 때 사용한다.
  • 하나의 메세지를 여러 객체가 처리해야할 때 사용한다.

GitHub: 책임 연쇄 패턴 구현 코드

profile
느리더라도 꾸준하게

0개의 댓글