인프런 커뮤니티 질문&답변

churihyung님의 프로필 이미지
churihyung

작성한 질문수

코딩으로 학습하는 GoF의 디자인 패턴

커맨드 패턴 3부 - 장점과 단점

undo 메소드 작업중에서

작성

·

251

1

예를 들어 LightOffCommand 클래스에서

Light를 가지고 있는데

undo() {

light.on();

}

이렇게 사용하지 않는건 단일책임 원칙때문에 그런건가요?

답변 1

0

제가 생각하는 light.on() 같이 Reciver의 메소드를
직접 호출하는 게 아닌 반대 성격의 command에게 위임하는 행위의 장점은 변경이 더 최소화 된다는 것 같습니다.

light.on() API의 시그니처가 변경되면
기존 LightOffCommand의 undo 기능이
LightOnCommand의 execute를 통해서 실행되기 때문에 LightOnCommand의 execute()만 변경하지만

직접 on()을 호출하면 담당하는 Command와 반대 성격의 Command undo 부분 2가지 모두 변경해야 하기 때문입니다.

churihyung님의 프로필 이미지
churihyung

작성한 질문수

질문하기