首页 > 其他分享 >状态模式-22

状态模式-22

时间:2023-09-01 19:55:42浏览次数:48  
标签:body 状态 22 void 模式 class State public setState

概述

状态模式(State Pattern)又称状态对象(Objects for States)。当一个对象的内部状态改变时其行为跟着改变。

优点:提高可维护性。
缺点:增加了类的数量,实现较复杂,不符合“开闭原则”。

class Context {
  private State state;
  
  public setState(State s) {
    state = s;
  }
}

abstract class State {
  protected Context ctx;
  
  public void action() {
    // body
  }
  abstract void change();
}

class StateA extends State {
  public void actionA() {
    // body
  }
  
  public void change() {
    ctx.setState(new StateB());
  }
}

class StateB extends State {
  public void actionB() {
    // body
  }
  
  public void change() {
    ctx.setState(new StateA());
  }
}

图示:
image

参考

[1] 刘伟, 设计模式, 2011.

标签:body,状态,22,void,模式,class,State,public,setState
From: https://www.cnblogs.com/xdreamc/p/16471989.html

相关文章

  • 设计模式:观察者模式/发布-订阅模式
    设计模式wiki中将设计模式分为四类,分别是:创建模式(creationalpatterns)结构模式(structuralpatterns)行为模式(behavioralpatterns)并发模式(concurrencypatterns)观察者/发布订阅模式属于其中的行为模式。实际情境公众号订阅说到发布订阅,拿微信公众号举例,就很好理解,有n个......
  • 开发小技巧 - 合理使用Visual Studio 2022内置任务列表(TODO)
    前言在开发编码过程中经常会因为各种问题而打断自己的思绪和开发计划,可能会导致本来准备开发或者需要测试的功能到要上线的时候才想起来没有做完。这种情况相信很多同学都遇到过,咱们强大的VisualStudio内置了一个任务列表(TODO)能让我们当做待办清单功能使用,接下来我们快速了解一......
  • OpenCV的安装与配置(VS2022)
    ......
  • 深入解析 Java 抽象工厂模式:创建跨平台图形绘制工具的设计与实现
    深入解析Java抽象工厂模式:创建跨平台图形绘制工具的设计与实现抽象工厂模式(AbstractFactoryPattern)是Java中一种常用的设计模式,它属于创建型模式的一种。该模式提供了一种创建一系列相关或相互依赖对象的接口,而无需指定具体实现类。在本文中,我们将详细介绍抽象工厂模式的概......
  • 【团队协作】都2022年了,前后端合作开发还不使用Apifox?
    文章目录前言一、Apifox介绍二、安装使用三、创建接口文档......
  • 洛谷P1228 地毯填补问题
    1#include<bits/stdc++.h>2usingnamespacestd;3intk,x,y;45intjudge(intx,inty,intgx,intgy,intlen)//判断障碍物在哪个区块6{7if(gx<=x+len/2-1&&gy<=y+len/2-1)8return1;9else......
  • 电路仿真软件Proteus中文版下载,Proteus2022最新版 中文版介绍
    ProteusPro仿真软件是LabcenterElectronics公司(中国总代理为广州风标电子技术有限公司)的EDA工具软件,是一款适用于单片机教学、单片机应用开发领域的专员人员使用的仿真软件。ProteusPro支持IAR、Keil和MPLAB等多种编译器,软件内的模型处理器支持多种类型的格式,是世界上著名单片机......
  • 设计模式-创建型-原型模式
    title:设计模式-创建型-原型模式keywords:设计模式cover:[https://s1.ax1x.com/2023/08/31/pP01Vit.png]#sticky:10banner:type:imgbgurl:https://s1.ax1x.com/2023/08/31/pP01Vit.pngbannerText:设计模式-创建型-原型模式categories:设计模式tags:-......
  • 【专题】2022年中国母婴行业新媒体营销价值研究报告PDF合集分享(附原数据表)
    原文链接:https://tecdat.cn/?p=33528报告合集显示,由于新生儿出生率下降,母婴行业进入了存量时代。在这一背景下,抖音电商成为越来越多消费者的选择,尤其是24-40岁的三四线城市女性。这一消费群体更倾向于在线上购买,给母婴行业的线上销售带来了巨大的机遇。阅读原文,获取专题报告合集......
  • 设计模式-创建型-单例模式
    title:设计模式-创建型-单例模式keywords:设计模式cover:[https://s1.ax1x.com/2023/08/31/pP01Vit.png]#sticky:10banner:type:imgbgurl:https://s1.ax1x.com/2023/08/31/pP01Vit.pngbannerText:设计模式-创建型-单例模式categories:设计模式tags:-......