java设计模式之状态模式

比如酒店房间有不同的状态,通过共有的类去设置酒店不同的状态,如空闲,已入住,已预订。

package state;

public interface State {
void handle();
}

//空闲房价实现State借口,重写handle方法

package state;

public class FreeState implements State {

@Override
public void handle() {
// TODO Auto-generated method stub
System.out.println("房价空闲!");
}

 

}

package state;

public class CheckedState implements State {

@Override
public void handle() {
// TODO Auto-generated method stub
System.out.println("房价已预订!别人不能定");
}

 

}

package state;

public class BookedState implements State {

@Override
public void handle() {
// TODO Auto-generated method stub
System.out.println("房间已入住,请勿打扰");
}

 

}

//改变房间的状态类,用于操作各个放房间的类。

package state;

public class HomeContext {
private State state;
public void setState(State s){
System.out.println("修改状态");
state=s;
state.handle();
}
}

//测试一下改变状态的类

package com.state;

public class Client {
public static void main(String[] args) {
HomeContext htc=new HomeContext();
htc.setState(new FreeState());

}
}

posted @ 2017-03-09 21:29  zzdxw  阅读(117)  评论(0编辑  收藏  举报