软设模式之状态模式

设计模式中状态模式的意图是:允许一个对象在其内部状态被改变时改变它的行为

打个比方,在一款即时战略游戏中设计一辆坦克,坦克有普通攻击状态,还有一防空状态。通过设计一个坦克抽象父类,再在下面设计一个具体坦克子类,子类下面有一个普通攻击状态子类,一个防空状态子类,通过调动这些状态类实现状态转换

Context:情景类,定义客户应用程序有兴趣的接口,维护一个Concrete state子类的对象

state:抽象状态类,定义一个接口用来封装与Context的一个特别状态相关的行为

Concrete State:具体状态类,每一个具体状态类实现一个Context的状态相关的行为

相关推荐
Ayu阿予4 分钟前
C++从源文件到可执行文件的过程
开发语言·c++
C++业余爱好者5 分钟前
JVM优化入门指南:JVM垃圾收集器(GC)介绍
java·开发语言·jvm
福尔摩斯张6 分钟前
基于C++的UDP网络通信系统设计与实现
linux·c语言·开发语言·网络·c++·tcp/ip·udp
Trouvaille ~10 分钟前
【Java篇】基石与蓝图::Object 类与抽象类的双重奏
java·开发语言·javase·抽象类·类与对象·基础入门·object类
卜锦元12 分钟前
Golang中make()和new()的区别与作用?
开发语言·后端·golang
小光学长14 分钟前
基于ssm的美妆产品推荐系统rah0h134(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
java·数据库·spring
Light6023 分钟前
破局“数据孤岛”:构建业务、财务、指标三位一体的智能数据模型
java·大数据·开发语言
中文很快乐24 分钟前
从零到一:用 SpringBoot 打造 RESTful API 实战指南
java·spring boot·后端·restful
泉城老铁25 分钟前
springboot+redis 如何实现订单的过期
java·后端·架构
guygg8825 分钟前
基于Matlab的压缩感知信道估计算法实现
开发语言·算法·matlab