728x90
반응형
01.커맨드패턴
01.1 Button.java
public class Button{
private Light light;
public Button(Light light){
this.light = light;
}
public void press(){
light.on();
}
public static void main(String[] args){
Button button = new Button(new Light());
button.press();
button.press();
button.press();
}
}
01.2 Light.java
public class Light{
private booleam isOn;
public void on(){
System.out.println("불을 켭니다.");
this.isOn = true;
}
public void off(){
System.out.prinln("불을 끕니다.");
this.isOn = false;
}
public booleam isOn(){ return this.isOn; }
}
- 위와 같이 해버리면 너무 변경이 자주 일어나고 너무 연관성이 깊어 수정이 너무 번거롭다.
02.그래서? 커맨드 패턴이 뭔가요?
- 요청을 캡슐화 하여 호출자(invoker)와 수신자(receiver)를 분리하는 패턴
- 요청을 처리하는 방법이 바뀌더라도, 호출자의 코드는 변경되지 않는다.
728x90
반응형
'CS Study > 디자인패턴' 카테고리의 다른 글
2022-05-11-커맨드패턴-3부-장점과단점 (0) | 2022.05.12 |
---|---|
2022-05-11-커맨드패턴-2부-패턴적용하기 (0) | 2022.05.12 |
22-04-18-책임연쇄패턴-4부-장점과단점 (0) | 2022.04.18 |
22-04-18-책임연쇄패턴-3부-장점과단점 (0) | 2022.04.18 |
22-04-18-책임연쇄패턴-2부-패턴적용하기 (0) | 2022.04.18 |
댓글