软设模式之状态模式

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

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

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

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

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

相关推荐
FRing038 分钟前
vue2干货总结2(v-bind、v-for、v-model、指令修饰符、v-bind操作class和style)
开发语言·前端·vue.js·vue2
by2099935 分钟前
C++ 智能指针的所有权与使用
开发语言·c++·经验分享
砚底藏山河41 分钟前
python量化自定义周期 K 线合成
java·开发语言·数据库·python·金融
IT召唤狮1 小时前
开源企业级零信任项目Pangolin,零信任能挡住PHP核弹漏洞吗?
开发语言·开源·php
知已难寻1 小时前
03 · OpenStack的计算管理 Nova
运维·服务器·开发语言·云原生·云计算·openstack·开源软件
Rover Ramble1 小时前
C++ 用互斥锁实现读写锁
开发语言·c++
猿究院_夏燊1 小时前
MySQL 的四种隔离级别
java·数据库·mysql
码流子2 小时前
移动收费怎么做?手持终端+App+收费中心的架构实践
java·开发语言·架构
雪落漂泊2 小时前
C++算法 滑动窗口篇(下)
开发语言·c++
霸道流氓气质2 小时前
AI 流式对话与实时聊天平台:SSE 解码竞态、有状态会话隔离与背压取消的 Vue3 + Spring AI 生产级实战
java·人工智能·spring