State接口类

public interface State {

void handle();

}

BookedState类

/**

* 已预订状态

* @author Administrator

*

*/

public class BookedState implements State {

@Override

public void handle() {

System.out.println("房间已预订!别人不能定!");

}

}CheckedInState类

/**

* 已入住状态

* @author Administrator

*

*/

public class CheckedInState implements State {

@Override

public void handle() {

System.out.println("房间已入住!请勿打扰!");

}

}FreeState类

/**

* 空闲状态

* @author Administrator

*

*/

public class FreeState implements State {

@Override

public void handle() {

System.out.println("房间空闲!!!没人住!");

}

}HomeContext类

/**

* 房间对象

* @author Administrator

*

*/

public class HomeContext {

//如果是银行系统,这个Context类就是账号。根据金额不同,切换不同的状态!

private State state;

public void setState(State s){

System.out.println("修改状态!");

state = s;

state.handle();

}

}Client测试类

public class Client {

public static void main(String[] args) {

HomeContext ctx = new HomeContext();

ctx.setState(new FreeState());

ctx.setState(new BookedState());

}

}

java 中 statent,【行为型模式】状态模式(state)之23种java设计模式相关推荐

  1. Java设计模式之行为型:状态模式

    背景: 介绍状态模式前,我们先看这样一个实例:公司力排万难终于获得某个酒店的系统开发项目,并且最终落到了你的头上.下图是他们系统的主要工作: 当第一眼看到这个系统时你就看出这是一个状态图,每个框都代表 ...

  2. 《设计模式详解》行为型模式 - 状态模式

    状态模式 6.5 状态模式 6.5.1 反例 6.5.2 结构 6.5.3 案例实现 6.5.4 优缺点 6.5.5 使用场景 完整的笔记目录:<设计模式详解>笔记目录,欢迎指点! 行为型 ...

  3. 设计模式 — 行为型模式 — 状态模式

    目录 文章目录 目录 状态模式 应用场景 代码示例 状态模式 状态模式,当对象的内部状态发生了改变的时候,允许对象执行不同的流程. 优点: 封装了状态转换规则. 枚举了可能的状态,在枚举状态之前需要确 ...

  4. 行为型模式——状态模式(十一)

    该项目源码地址:https://github.com/ggb2312/JavaNotes/tree/master/design-pattern(设计模式相关代码与笔记) 1. 定义 允许一个对象在其内 ...

  5. java中的静态、动态代理模式以及Spring中的CgLib动态代理解读(面试必问)

    java中的静态.动态代理模式以及Spring中的CgLib动态代理解读(面试必问) 静态代理 动态代理 CgLib动态代理     基础知: 反射知识 代理(Proxy)是一种设计模式,提供了对目标 ...

  6. 设计模式之委派模式(不属于23种经典设计模式之一)

    介绍 标准定义:委派模式的原理为类B和类A是两个互相没有任何关系的类,B具有和A一模一样的方法和属性,并且调用B中的方法.属性就是调用A中同名的方法和属性.B好像就是一个受A授权委托的中介.第三方的代 ...

  7. 研磨23种大话设计模式------简单工厂模式 + 工厂方法模式 + 抽象工厂模式

    大家好,我是一位在java学习圈中不愿意透露姓名并苟且偷生的小学员,如果文章有错误之处,还望海涵,欢迎多多指正 如果你从本文 get 到有用的干货知识,请帮忙点个赞呗,据说点赞的都拿到了offer 简 ...

  8. java中bigdecimal除以int类型的数据怎么实现_大部分Java程序员都会忽略的几个问题,你中招没?...

    1. 正确使用 equals 方法 Object的equals方法容易抛空指针异常,应使用常量或确定有值的对象来调用 equals. 举个例子: 运行上面的程序会抛出空指针异常,但是我们把第二行的条件 ...

  9. 23种经典设计模式都有哪些,如何分类?Java设计模式相关面试

    23种经典设计模式都有哪些,如何分类? 23种经典设计模式都有哪些,如何分类? java常用的设计模式?说明工厂模式 Java 中的23 种设计模式: Factory(工厂模式), Builder(建 ...

最新文章

  1. 王振的开发板_Android
  2. 数据蒋堂 | JOIN提速 - 外键指针的衍生
  3. 量子计算机功率,美国物理学家证明光纤可提升超导量子计算机的功率
  4. Rocket - diplomacy - AddressSet
  5. html按钮颜色属性值,HTML button formmethod 属性 - HTML 颜色参考手册 - 自强学堂
  6. numpy vsplit
  7. IE 11 预览版初体验
  8. Lucene的评分(score)机制的简单解释
  9. android 上下滚动文字_android高仿今日头条富文本编辑(发布文章)
  10. python和javascript哪个好_JavaScript与Python:主要区别
  11. Java技巧:用一个循环语句输出九九乘法表!
  12. 使用 Powershell 远程连接 windows server
  13. 信息学奥赛一本通1032
  14. 区块链相关技术学习总结(1)——区块链以及区块链技术入门详解
  15. ⭐❤️sqlite数据库使用大全❤️⭐
  16. 爬虫——获取页面源代码
  17. entity、bo、vo、po、dto、pojo如何理解及相互转化
  18. python使用matplotlib画折线图(详细)
  19. 2天获订2万台,明明如此普通,自游家NV为何如此自信?
  20. jQuery第二章选择器

热门文章

  1. 什么是 SAP Commerce Cloud 的 Paragraph component
  2. 如何使用 API 的方式给 SAP service cloud Registered product 上传图片
  3. 培训学习笔记 - 人们不买钻头,他们买孔洞
  4. SAP Spartacus CmsService的CmsActions.LoadCmsComponent
  5. Angular Component 开发时属性和运行时属性的对照
  6. SAP云平台的trial账号不具备成员管理的功能
  7. 把经典的ABAP webdynpro应用配置到SAP Fiori Launchpad里
  8. nginx常用配置目录
  9. when is Lessifier triggered to be loaded
  10. What does SAP UI5 bindItem occurs