본문
State Pattern (상태 패턴)
프로그래밍/디자인패턴 2015. 9. 1. 09:06
반응형
💡 State Pattern
State Pattern은 일련의 규칙에 따라 객체의 상태(State)를 변화시켜, 객체가 할 수 있는 행위를 바꾸는 패턴입니다.
상태에 따라 행동이 변화하는 객체엔 모두 적용할 수 있습니다.
💡 특징
State Pattern은 객체의 특정 상태를 클래스로 선언하고, 클래스에서는 해당 상태에서 할 수 있는 행위들을 메서드로 정의합니다.
그리고 이러한 각 상태 클래스들을 인터페이스로 캡슐화하여, 클라이언트에서 인터페이스를 호출하는 방식을 말합니다.
public interface PowerState {
public void powerPush();
}
public class On implements PowerState {
public void powerPush() {
System.out.println("power on");
}
}
public class Off implements PowerState {
public void powerPush() {
System.out.println("power off");
}
}
public class Saving implements PowerState {
public void powerPush() {
System.out.println("power saving");
}
}
public class Laptop {
private PowerState powerState;
public Laptop() {
this.powerState = new Off();
}
public void setPowerState(PowerState powerState) {
this.powerState = powerState;
}
public void powerPush() {
powerState.powerPush();
}
}
public class Client {
public static void main(String args[]) {
Laptop laptop = new Laptop();
On on = new On();
Off off = new Off();
Saving saving = new Saving();
laptop.powerPush();
laptop.setPowerState(on);
laptop.powerPush();
laptop.setPowerState(saving);
laptop.powerPush();
laptop.setPowerState(off);
laptop.powerPush();
laptop.setPowerState(on);
laptop.powerPush();
}
}
반응형
댓글