java设计模式_状态模式
2019独角兽企业重金招聘Python工程师标准>>>
状态模式类比if,else,状态决定行为。如果需要增加一个行为,通过状态模式,仅仅需要增加一个实现公共接口State的实现类即可,而不像if,else那样,在各个用到的java文件修改代码。
package com.wangbiao.test;/*** * 状态模式,状态决定行为,可以类比if,else操作,通过设置不同的状态,从而执行不同的操作,仅仅需要增加一个state(实现公共接口State,用户调用即可,不需要改变其他代码。* @author WangBiao**/
public class Main_Test {public static void main(String[] args) {Context context=new Context();context.setState(new B_State());context.request();}
}class Context {//维护一个State状态private State state;public State getState() {return state;}public void setState(State state) {this.state = state;}public void request() {state.handle();}}interface State {public void handle();
}class A_State implements State {@Overridepublic void handle() {System.out.println("A状态,A操作");}
}class B_State implements State {@Overridepublic void handle() {System.out.println("B状态,B操作");}
}
转载于:https://my.oschina.net/u/617909/blog/119144
java设计模式_状态模式相关推荐
- java状态模式例子答案_[转载]java设计模式_状态模式(带例子)
状态模式(STATE) Java深入到一定程度,就不可避免的碰到设计模式这一概念,了解设计模式,将使自己对java中的接口或抽象类应用有更深的理解.设计模式在java的中型系统中应用广泛,遵循一定的编 ...
- java设计模式之状态模式_Java中的状态设计模式
java设计模式之状态模式 在本教程中,我们将探讨另一种流行的行为设计模式-状态设计模式. 当我们使用可以存在于多个状态的对象时,状态设计模式的知识变得非常有用. 当对象的行为取决于其当前状态时,我们 ...
- 图解java多线程设计模式 pdf_图解Java设计模式之状态模式
图解Java设计模式之状态模式 APP抽象活动问题 状态模式基本介绍 状态模式的原理类图 状态模式解决APP抽奖问题 状态模式的注意事项和细节 APP抽象活动问题 请编写程序完成APP抽象活动,具体要 ...
- Java 设计模式之状态模式
一.了解状态模式 1.1 什么是状态模式 状态模式允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它自己的类. 状态模式将状态封装为独立的类,并将动作委托到代表当前状态的对象. 1.2 状态 ...
- 【状态模式】Java设计模式之状态模式
何时使用 State模式在实际使用中比较多,适合"状态"的切换.因为我们经常会使用If else if else 进行状态切换,如果针对状态的这样判断切换反复出现,我们就要联想到是 ...
- Java设计模式之状态模式
本文继续介绍23种设计模式系列之策略模式. 何时使用 State模式在实际使用中比较多,适合"状态"的切换.因为我们经常会使用If else if else 进行状态切换,如果针对 ...
- 【Java设计模式】状态模式
? 在很多情况下,一个对象的行为取决于一个或多个动态变化的属性,这样的属性叫做状态,这样的对象叫做有状态的( stateful)对象,这样的对象状态是从事先定义好的一系列值中取出的.当一个这样的对象与 ...
- Java 设计模式_代理模式(2016-08-19)
概念: 代理模式是对象的结构模式.代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用. 就是一个人或者机构代表另一个人或者机构采取行动.在一些情况下,一个客户不想或者不能够直接引用一 ...
- java设计模式_模版模式
2019独角兽企业重金招聘Python工程师标准>>> package com.wangbiao.test;/*** 模版模式,好比一个业务的流程一样,抽象类大致的设计了流程的步骤, ...
最新文章
- new Vue 发生了什么
- undefined reference to cv::_InputArray::_InputArray(cv::Mat const)
- Java-优秀博客推荐
- linux系统无线怎么设置密码,LINUX终端下配置WPA2加密无线网络
- 2015年 第6届 蓝桥杯 Java B组 省赛解析及总结
- 5.深度学习练习:Deep Neural Network for Image Classification: Application
- MapReduce算法形式四:mapjoin
- input:hidden的作用
- 判断是否素数 c语言,判断是否是素数 C语言
- java 正则表达式 例子_Java正则表达式例子汇总
- 抖音视频怎么下载MP4格式怎么转换为MP3
- XXS靶场haozi
- 2021-2027全球及中国运动营养和体重管理食品行业研究及十四五规划分析报告
- python求和1到100_python求1到100的和的几种方法
- 【程序员修炼日志】校招与社招的感悟
- UI设计师是做什么的?
- Android连接WiFi再探索
- 欧几里得 拓展欧几里得算法 讲解 (Euclid Extend- Euclid Algorithm)
- 自己写的加班申请、审批微信小程序(有源码)
- STM32Cube_FW_F4_V1.17 F4固件包百度网盘下载
热门文章
- LightOJ 1030 【概率DP求期望】
- Codeforces614D Skills
- 454. 4Sum II
- windows上SSH服务连接远程主机失败
- 离线安装chrome浏览器的postman插件
- css 设置table样式
- C#利用ICSharpCode.SharpZipLib.dll压缩文件和解压文件
- mysql 报错 get error 28 from storage engine 解决方法
- 微信小程序模板消息(服务通知消息)原始post工具封装(不使用jar包--坑比较多),解决47001(JSON格式)和中文乱码问题
- vss error reading from file 解决方法