e2

滴滴侠,fai抖

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

状态接口:

package state_mode;

/**
 * 状态接口
 */
public interface State {
    
    /**
     * 处理业务
     */
    public void handle();

}

 

空闲状态:

package state_mode;

/**
 * 空闲状态
 */
public class FreeState implements State{

    
    /**
     * 空闲状态业务处理
     */
    @Override
    public void handle() {
        System.out.println("房间空闲!!!没人住!");
    }

}

 

已预定状态:

package state_mode;

/**
 * 已预定状态
 */
public class BookedState implements State{
    
    
    /**
     * 已预定状态业务处理
     */
    @Override
    public void handle() {
        System.out.println("房间已预定!别人不能定!");
    }
    
}

 

已入住状态:

package state_mode;

/**
 * 已入住状态
 */
public class CheckedInState implements State{
    
    
    /**
     * 已入住状态业务处理
     */
    @Override
    public void handle() {
        System.out.println("房间已入住!请勿打扰!");
    }
    
}

 

房间对象:

package state_mode;

/**
 * 房间对象(房间上下文)
 * 状态模式核心类
 */
public class HomeContext {
    //如果是银行系统, 这个Context类就是账号. 根据金额不同, 切换不同的状态!
    
    
    /**
     * 当前的状态
     */
    private State state;

    
    /**
     * 设置状态
     * 并执行该状态所对应的行为
     */
    public void setState(State state) {
        System.out.println("修改状态!");
        this.state = state;
        this.state.handle();
    }
    
}

 

测试类:

package state_mode;

public class Client {

    public static void main(String[] args) {
        //创建房间对象
        HomeContext ctx = new HomeContext();
        
        //设置房间对象当前的状态, 并处理相应的业务
        ctx.setState(new FreeState());
        ctx.setState(new BookedState());
    }
    
}

 

打印结果:

修改状态!
房间空闲!!!没人住!
修改状态!
房间已预定!别人不能定!

 

 

谢谢声明出处!

转自: http://www.cnblogs.com/gscq073240/articles/7102918.html

 

posted on 2017-07-01 17:29  纯黑Se丶  阅读(193)  评论(0)    收藏  举报