작성
·
46
·
수정됨
0
디자인 패턴을 공부하면서 실제 구현중인 서비스에 적용해보려고 노력중인데(위 이미지는 예시 코드)
예시 처럼 작성했을 때의 실효성이 invoker에서 audit log 같은 공통 코드 추출하는것 이외에 잘 느껴지지 않는데, 적절하지 않은 부분에 적용하려해서 그런것일까요?
-> 단축키 예시처럼 해당 커맨드를 다른곳에서'도' 사용한다면 유용할것도 같네요!!
추가로 ValidateLeadFieldCommand, CreateLeadCommand 이런식으로 여러 커맨드가 순차로 실행해야하는 경우에 invoker도 커맨드마다 만들어야할까?하는 고민도 듭니다!
답변 1
0
네 명령이라는 것을 여러 군데서 사용해야 유용합니다. 한 곳에서만 실행되고 끝나는 명령은 중복되는 곳이 없어서 명령 패턴으로 만드는 의미가 적습니다. 명령을 수행하고 나서 히스토리에 기록을 해둔다든지, 다른 여러 군데서 동일한 명령을 수행한다든지 해서 동일한 명령이 이곳저곳에 있는 경우에 유용합니다.
invoker는 보통 커맨드를 매개변수로 받는 하나의 메서드입니다. 여러 개 만드실 필요는 없고 하나로 여러 커맨드를 실행하시면 됩니다.
invoke(new ValidateLeadFieldCommand());
invoke(new CreateLeadCommand());
답변 감사합니다!
이게 포인트였군요!