반응형

커맨드 패턴 (Command Pattern)
커맨드 패턴은 객체의 행위(메서드)를 클래스로 만들어 캡슐화 하는 패턴
  
객체(A)에서 객채(B)의 메서드를 실행하려면 객체(B)를 참조함으로 의존성이 발생
이를 커맨드 패턴을 적용하여 제거할 수 있음.
  
의존성이 제거 되므로 기능에 대한 변경이 일어날시  기능에 대한 클래스만 정의하면 되므로 확장성이 유연해 짐.
  
커맨드 패턴에는 명령(command), 수신자(receiver), 발동자(invoker), 클라이언트(client) 네게의 요소로 이루어짐

Switch 클래스는 요청에 대한 구체적 기능을 구현하는 대신
외부에서 전달된 캡슐화된 명령을 호출하는 역활을 수행.
미리 약속된 Command 인터페이스의 execute 메서드를 호출하는 역활

Light 클래스로 요구 사항을 수행하기 위해 구체적 기능이 구현된 객체

Command 인터페이스를 구현하고, execute() 메서드를 구현함으로써
Receiver에 있는 메서드를 호출하여 요청된  작업을 수행하는 역활

 

클라이언트 객체는 어느 시점에서 어떤 명령을 수행할지를 결정한다.
수행할 명령을 발동자 객체로 커맨드 객체를 전달

 

 

 

+ Recent posts