Command Pattern(커맨드 패턴)

애이용·2022년 3월 27일
0

커맨트 패턴은 객체의 메서드(행위)를 클래스로 만들어 캡슐화하는 패턴이다.

즉, 실행될 기능을 캡슐화함으로써 주어진 여러 기능을 실행할 수 있는 재사용성이 높은 클래스를 설계하는 것이다.

어떤 객체(A)에서 다른 객체(B)의 메서드를 실행하려면 그 객체(B)를 참조하고 있어야 하는 의존성이 발생하는데, 커맨트 패턴을 적용하면 그 의존성을 제거할 수 있다.

→ 실행될 기능의 변경에도 호출자 클래스를 수정 없이 그대로 사용할 수 있도록 해준다.

  • Command
    • 실행될 기능에 대한 인터페이스
    • 실행될 기능을 execute 메서드로 선언
    • Command 인터페이스
  • ConcreteCommand
    • 실제로 실행되는 기능을 구현
    • Command 인터페이스를 구현
    • HeaterOnCommand, LampOnCommand
  • Invoker
    • 기능의 실행을 요청하는 호출자 클래스
    • Command 객체를 캡슐화하며 요청을 처리하기 위해 커맨드 객체에 요청을 전달한다.
    • Button
  • Receiver
    • ConcreteCommand에서 execute 메서드를 구현할 때 필요한 클래스
    • ConcreteCommand의 기능을 실행하기 위해 사용하는 수신자 클래스
    • Heater, Lamp

참고 링크

profile
로그를 남기자 〰️

0개의 댓글