2022-05-11-커맨드패턴-1부-패턴소개
본문 바로가기
CS Study/디자인패턴

2022-05-11-커맨드패턴-1부-패턴소개

by KyeongMin 2022. 5. 12.
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)를 분리하는 패턴
  • 요청을 처리하는 방법이 바뀌더라도, 호출자의 코드는 변경되지 않는다.

https://github.com/3DPIT/3dpit.github.io/blob/main/content/blog/DesignPattern/2022-05-11-%EC%BB%A4%EB%A7%A8%EB%93%9C%ED%8C%A8%ED%84%B4-1%EB%B6%80-%ED%8C%A8%ED%84%B4%EC%86%8C%EA%B0%9C.md

 

728x90
반응형

댓글