본문 바로가기
Design Pattern

[Design pattern] 행위 패턴

by happy coding! 2019. 6. 14.
반응형

행위 패턴

  • Chain-of-responsibility pattern
  • Command pattern
  • Interpreter pattern
  • Iterator pattern
  • Observe pattern
  • Mediator pattern
  • Memento pattern
  • State pattern
  • Strategy pattern
  • Template method pattern
  • Null object pattern
  • Visitor pattern

Chain-of-responsibility pattern

요청을 처리할 수 있는 기회를 하나 이상의 객체에게 부여함으로써 요청하는 객체와 처리하는 객체 사이의 결합도를 없애는 패턴
요청을 해결하는 객체를 만날 때까지 객체 고리를 따라서 요청을 전달한다.
요청을 보낸 쪽하고 받는 쪽을 분리한다. 사슬에 들어가는 객체를 바꾸거나 순서를 바꿈으로써 역할을 동적으로 추가/제거할 수 있으며, 이러한 변화가 전체구조에 아무런 영향을 주지 않는다.

  • Handler
  • ConcreteHandler

Command pattern

실행될 기능을 캡슐화함으로써 주어진 여러 기능을 실행할 수 있는 재사용성이 높은 클래스를 설계하는 패턴
이벤트가 발생했을 때 실행될 기능이 다양하면서도 변경이 필요한 경우에 이벤트를 발생시키는 클래스를 변경하지 않고 재사용하고자 할 때 유용하다.
실행될 기능을 캡슐화함으로써 기능의 실행을 요구하는 호출자(Invoker) 클래스와 실제 기능을 실행하는 수신자(Receiver) 클래스 사이의 의존성을 제거한다.
실행될 기능의 변경에도 호출자 클래스를 수정 없이 그대로 사용할 수 있도록 해준다.


Observer pattern

객체 사이에 1대 n의 의존관계이며 객체 상태의 변화가 다른 의존 객체에 통지되고 자동으로 업데이트 되게 한다.
자동으로 통지를 처리한다. (통보하는 쪽과 통보받는 쪽의 결합이 약해진다)
Publisher - Subscriber
Push / Pool 방식의 데이터 처리 방식 중에서 Push 에 해당


State pattern

특정 객체가 자신의 상태에 따라 다른 행동을 하기 위하여 if 문장을 많이 사용하면, 함수의 크기가 커지고 객체상태가 많은 경우 해당 객체의 구현이 더욱 복잡해진다.
객체의 가능한 상태 개수만큼 상태 클래스를 작성한다.

Strategy pattern

반응형

댓글