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 }
    控制台输出:
    修改状态!
    房间空闲!没人住!
    修改状态!
    房间已预订!别人不能定!

    酒店系统中

    开发中

  • 相关阅读:
    连接数据库修改篇
    连接数据库
    get和post
    php连接mysql
    AJAX基础!
    JAVAsrcipt总结!
    使用AJAX如何得到数据库当中的值!
    AJAX如何做出输入框提示!
    PHP数据连接主键与外键!
    JAVA当中内存管理与垃圾回收!
  • 原文地址:https://www.cnblogs.com/erbing/p/5802664.html
Copyright © 2011-2022 走看看