java 中 statent,【行为型模式】状态模式(state)之23种java设计模式
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设计模式相关推荐
- Java设计模式之行为型:状态模式
背景: 介绍状态模式前,我们先看这样一个实例:公司力排万难终于获得某个酒店的系统开发项目,并且最终落到了你的头上.下图是他们系统的主要工作: 当第一眼看到这个系统时你就看出这是一个状态图,每个框都代表 ...
- 《设计模式详解》行为型模式 - 状态模式
状态模式 6.5 状态模式 6.5.1 反例 6.5.2 结构 6.5.3 案例实现 6.5.4 优缺点 6.5.5 使用场景 完整的笔记目录:<设计模式详解>笔记目录,欢迎指点! 行为型 ...
- 设计模式 — 行为型模式 — 状态模式
目录 文章目录 目录 状态模式 应用场景 代码示例 状态模式 状态模式,当对象的内部状态发生了改变的时候,允许对象执行不同的流程. 优点: 封装了状态转换规则. 枚举了可能的状态,在枚举状态之前需要确 ...
- 行为型模式——状态模式(十一)
该项目源码地址:https://github.com/ggb2312/JavaNotes/tree/master/design-pattern(设计模式相关代码与笔记) 1. 定义 允许一个对象在其内 ...
- java中的静态、动态代理模式以及Spring中的CgLib动态代理解读(面试必问)
java中的静态.动态代理模式以及Spring中的CgLib动态代理解读(面试必问) 静态代理 动态代理 CgLib动态代理 基础知: 反射知识 代理(Proxy)是一种设计模式,提供了对目标 ...
- 设计模式之委派模式(不属于23种经典设计模式之一)
介绍 标准定义:委派模式的原理为类B和类A是两个互相没有任何关系的类,B具有和A一模一样的方法和属性,并且调用B中的方法.属性就是调用A中同名的方法和属性.B好像就是一个受A授权委托的中介.第三方的代 ...
- 研磨23种大话设计模式------简单工厂模式 + 工厂方法模式 + 抽象工厂模式
大家好,我是一位在java学习圈中不愿意透露姓名并苟且偷生的小学员,如果文章有错误之处,还望海涵,欢迎多多指正 如果你从本文 get 到有用的干货知识,请帮忙点个赞呗,据说点赞的都拿到了offer 简 ...
- java中bigdecimal除以int类型的数据怎么实现_大部分Java程序员都会忽略的几个问题,你中招没?...
1. 正确使用 equals 方法 Object的equals方法容易抛空指针异常,应使用常量或确定有值的对象来调用 equals. 举个例子: 运行上面的程序会抛出空指针异常,但是我们把第二行的条件 ...
- 23种经典设计模式都有哪些,如何分类?Java设计模式相关面试
23种经典设计模式都有哪些,如何分类? 23种经典设计模式都有哪些,如何分类? java常用的设计模式?说明工厂模式 Java 中的23 种设计模式: Factory(工厂模式), Builder(建 ...
最新文章
- 王振的开发板_Android
- 数据蒋堂 | JOIN提速 - 外键指针的衍生
- 量子计算机功率,美国物理学家证明光纤可提升超导量子计算机的功率
- Rocket - diplomacy - AddressSet
- html按钮颜色属性值,HTML button formmethod 属性 - HTML 颜色参考手册 - 自强学堂
- numpy vsplit
- IE 11 预览版初体验
- Lucene的评分(score)机制的简单解释
- android 上下滚动文字_android高仿今日头条富文本编辑(发布文章)
- python和javascript哪个好_JavaScript与Python:主要区别
- Java技巧:用一个循环语句输出九九乘法表!
- 使用 Powershell 远程连接 windows server
- 信息学奥赛一本通1032
- 区块链相关技术学习总结(1)——区块链以及区块链技术入门详解
- ⭐❤️sqlite数据库使用大全❤️⭐
- 爬虫——获取页面源代码
- entity、bo、vo、po、dto、pojo如何理解及相互转化
- python使用matplotlib画折线图(详细)
- 2天获订2万台,明明如此普通,自游家NV为何如此自信?
- jQuery第二章选择器
热门文章
- 什么是 SAP Commerce Cloud 的 Paragraph component
- 如何使用 API 的方式给 SAP service cloud Registered product 上传图片
- 培训学习笔记 - 人们不买钻头,他们买孔洞
- SAP Spartacus CmsService的CmsActions.LoadCmsComponent
- Angular Component 开发时属性和运行时属性的对照
- SAP云平台的trial账号不具备成员管理的功能
- 把经典的ABAP webdynpro应用配置到SAP Fiori Launchpad里
- nginx常用配置目录
- when is Lessifier triggered to be loaded
- What does SAP UI5 bindItem occurs