zoukankan      html  css  js  c++  java
  • 【GOF23设计模式】状态模式

    来源:http://www.bjsxt.com/ 
    一、【GOF23设计模式】_状态模式、UML状态图、酒店系统房间状态、线程对象状态切换

    场景

    场景

    核心

    状态图

    1 package com.test.state;
    2 
    3 public interface State {
    4     void handle();
    5 }
     1 package com.test.state;
     2 /**
     3  * 空闲状态
     4  */
     5 public class FreeState implements State{
     6 
     7     @Override
     8     public void handle() {
     9         System.out.println("房间空闲!没人住!");
    10     }
    11 }
     1 package com.test.state;
     2 /**
     3  * 已预订状态
     4  */
     5 public class BookedState implements State{
     6 
     7     @Override
     8     public void handle() {
     9         System.out.println("房间已预订!别人不能定!");
    10     }
    11 }
     1 package com.test.state;
     2 /**
     3  * 已入住状态
     4  */
     5 public class CheckedInState implements State{
     6 
     7     @Override
     8     public void handle() {
     9         System.out.println("房间已入住!别人不能入住!");
    10     }
    11 }
     1 package com.test.state;
     2 /**
     3  * 房间对象
     4  */
     5 public class HomeContext {
     6     //如果是银行系统,这个Context类就是账号。根据金额不同,切换不同的状态!
     7 
     8     private State state;
     9 
    10     public void setState(State s){
    11         System.out.println("修改状态!");
    12         state = s;
    13         state.handle();
    14     }
    15 }
     1 package com.test.state;
     2 
     3 public class Client {
     4     public static void main(String[] args) {
     5         HomeContext ctx = new HomeContext();
     6 
     7         ctx.setState(new FreeState());
     8 
     9         ctx.setState(new BookedState());
    10     }
    11 }
    控制台输出:
    修改状态!
    房间空闲!没人住!
    修改状态!
    房间已预订!别人不能定!

    酒店系统中

    开发中

  • 相关阅读:
    I.MX6 fbset 使用
    I.MX6 Android 设备节点权限
    使用Android Studio自带的NDK编译JNI
    I.MX6 网卡能收不能发
    make: *** No rule to make target `out/target/common/obj/APPS/framework-res_intermediates/src/R.stamp'
    Linux 监视文件、文件夹改动
    如何定位web前后台的BUG
    <转>SQL语句大全
    软件测试基础理论(三)
    软件测试基础理论(二)
  • 原文地址:https://www.cnblogs.com/erbing/p/5802664.html
Copyright © 2011-2022 走看看