Inflearn Community Q&A
undo 메소드 작업중에서
Written on
·
341
1
예를 들어 LightOffCommand 클래스에서
Light를 가지고 있는데
undo() {
light.on();
}
이렇게 사용하지 않는건 단일책임 원칙때문에 그런건가요?
java디자인-패턴디자인-패턴
Answer 1
0
제가 생각하는 light.on() 같이 Reciver의 메소드를
직접 호출하는 게 아닌 반대 성격의 command에게 위임하는 행위의 장점은 변경이 더 최소화 된다는 것 같습니다.
light.on() API의 시그니처가 변경되면
기존 LightOffCommand의 undo 기능이
LightOnCommand의 execute를 통해서 실행되기 때문에 LightOnCommand의 execute()만 변경하지만
직접 on()을 호출하면 담당하는 Command와 반대 성격의 Command undo 부분 2가지 모두 변경해야 하기 때문입니다.





