java设计模式-State模式
1.背景:
package com.cy.dp.state;public class Boy {private String name;public String getName() {return name;}public void setName(String name) {this.name = name;}}
View Code
状态类:State.java(抽象类,具体实现交给子类)
//状态类 public abstract class State {public abstract void smile();public abstract void cry();public abstract void say(); }
HappyState.java (高兴状态)
package com.cy.dp.state;public class HappyState extends State {@Overridepublic void smile() {// happy smile }@Overridepublic void cry() {// happy cry }@Overridepublic void say() {// happy say }}
View Code
UnHappyState.java (不高兴状态)
package com.cy.dp.state;public class UnHappyState extends State {@Overridepublic void smile() {// unhappy smile }@Overridepublic void cry() {// unhappy cry }@Overridepublic void say() {// unhappy say }}
View Code
MM.java:
package com.cy.dp.state;public class MM {private String name;private State state = new HappyState();public String getName() {return name;}public void setName(String name) {this.name = name;}public void smile(){state.smile();}public void cry(){state.cry();}public void say(){state.cry();}}
3.小结:
转载于:https://www.cnblogs.com/tenWood/p/9136746.html
java设计模式-State模式相关推荐
- Java 设计模式——状态模式
概述 很多人在说状态模式的时候总拿策略模式来进行对比,可能他们的类图会有一点类似,可我却不认为他们有多么相像.你可以阅读<Java设计模式--策略模式>这篇博客,并与本文对比,以找到蛛丝马 ...
- Java设计模式——备忘录模式
Java设计模式--备忘录模式 需求 游戏角色状态恢复问题 游戏角色有攻击力和防御力,在大战Boss前保存自身的状态(攻击力和防御力),当大战Boss后攻击力和防御力下降,从备忘录对象恢复到大战前的状 ...
- Java设计模式——Builder模式
前言 之前写Android程序的时候,经常会用到Dialog(对话框)这个控件.我们在使用Dialog,比如AlertDialog的时候就用到了这里要说明的Builder模式.现在我们来看一下这样的一 ...
- Java设计模式-工厂模式(3)抽象工厂模式
在Java设计模式-工厂模式(2)工厂方法模式 我们知道了工厂方法模式解决了简单工厂模式中的缺陷,做到了满足开闭原则,但是时代是进步的,进而又产生新的问题,工厂难道只能生产一种东西吗.我们所见到的工厂 ...
- Java设计模式-工厂模式(2)工厂方法模式
在Java设计模式-工厂模式(1)简单工厂模式 中我们介绍了简单工厂模式,提到了简单工厂模式违背了开闭原则,而"工厂方法模式"是对简单工厂模式的进一步抽象化,其好处是可以使系统在不 ...
- Java设计模式-工厂模式(1)简单工厂模式
Java设计模式-工厂模式(1)简单工厂模式 一.前言 1)例子 2)类图关系 3)代码实现 二.简单工厂模式 2.1.概述: 2.2.类图关系: 2.3.代码修改: 2.4.优缺点 2.5.扩展-简 ...
- java设计模式代理模式_Java中的代理设计模式
java设计模式代理模式 代理对象或代理对象为另一个对象提供占位符,以控制对该对象的访问. 代理充当原始对象的轻量级版本或简化版本. 它支持与原始对象相同的操作,但可以将那些请求委托给原始对象以实现它 ...
- java设计模式 订阅模式_Java中的外观设计模式
java设计模式 订阅模式 立面是指建筑物的外观. 当穿过街道时,我们所看到的只是建筑物的外观. 该工作面抽象了建筑物的所有复杂实现细节. 同样, 外观设计模式旨在为子系统中的一组接口提供统一的接口. ...
- java设计模式 订阅模式_Java中的复合设计模式
java设计模式 订阅模式 当我们必须使用对象的树状分层结构时,复合设计模式非常有用. 它使我们能够统一对待单个对象和对象组成. 它属于结构设计模式的范畴,因为它将对象组合成树形结构以表示部分整个层次 ...
- java设计模式迭代器模式_迭代器设计模式示例
java设计模式迭代器模式 本文是我们名为" Java设计模式 "的学院课程的一部分. 在本课程中,您将深入研究大量的设计模式,并了解如何在Java中实现和利用它们. 您将了解模式 ...
最新文章
- input type=file /,美化自定义上传按钮
- 系统调优,你所不知道的TIME_WAIT和CLOSE_WAIT
- 十大互联网公司都在寻找她!她是什么样的?
- (十二)springmvc+mybatis+dubbo+zookeeper分布式架构 整合 - zookeeper注册中心安装
- Java知多少(4)J2SE、J2EE、J2ME的区别
- Android --- android.view.InflateException: Binary XML file line #7: Binary XML file lin... 类似问题的解决办法
- 完全删除垃圾Q+!!!
- ZDOzMRVAOq
- python matplotlib模块教程_Python中的Matplotlib模块入门教程
- 【华为云技术分享】如何设计高质量软件-领域驱动设计DDD(Domain-Driven Design)学习心得
- 解决SQL Server 连接时的一些基本问题后的若干初浅心得
- edi python_在不从edi运行的情况下调用python函数
- python - list 列表推导式
- Jquery实现图片的预加载与延时加载
- 手工打造迅雷9超精简版
- 高斯克吕格投影,将经纬度转换为投影坐标
- Python逆波兰表达式
- 虚拟主机与云服务器有什么区别,我们应该如何选择
- kafka自定义生产者分区器、自定义消费者分区器
- Java浅拷贝和深拷贝(一文足矣),及String类型的坑。
热门文章
- Win32 编程
- SpringMVC——架构,搭建,SSM搭建,POST请求乱码问题,参数转换器
- 从44.556677想到的
- [BZOJ] 1639: [Usaco2007 Mar]Monthly Expense 月度开支
- Could not create ServerSocket on address 0.0.0.0/0.0.0.0:9083
- 2015上海网络赛 HDU 5475 An easy problem 线段树
- 最新wp建站做淘宝客系统教程(共6课)附源码
- 关于输入法的弹出和隐藏
- 自己常用的分页SQL
- Spark RDD、DataFrame和DataSet的区别