state-pattern相关内容

策略设计模式和状态设计模式有什么区别?

策略设计模式和状态设计模式有什么区别?我在网上浏览了很多文章,但无法清楚地区分. 有人可以解释一下外行术语的区别吗? 解决方案 老实说,这两种模式在实践中非常相似,它们之间的定义差异往往会因您问的对象而异.一些流行的选择是: 状态存储对包含它们的上下文对象的引用.策略没有. 状态可以替换自己(即:将上下文对象的状态更改为其他状态),而策略则不能. 策略作为参数传递给上下文对 ..
发布时间:2021-12-22 08:52:44 其他开发

如何实现 FSM - Java 中的有限状态机

我有工作要做,需要你的帮助.我们想要实现一个FSM - 有限状态机,来识别字符序列(如:A、B、C、A、C),并判断它是否被接受. 我们认为要实现三个类:State、Event 和 Machine.state 类在FSM 中呈现了一个节点,我们想用State 设计模式 来实现它,每个节点都会从抽象类状态扩展每个类都会处理不同类型的事件并指示到新状态的转换.您认为这是个好主意吗? 第二件 ..
发布时间:2021-12-22 08:44:31 Java开发

Python中的状态模式

在用Python实现状态设计模式时,我遇到了一些问题. 我是Python的新手,并编写了一些代码来尝试回答这个问题: 写一个简单的ATM的代码,该代码允许用户插入卡,输入PIN,索取现金并弹出卡. 对于显示状态模式使用情况的系统,请使用以下对象模型.您将需要确定每次操作要更改为什么状态. 有关更多信息,请参见下面的UML图: ATM图 这是我在下面的尝试... ..
发布时间:2020-07-09 23:11:07 Python

为什么是代理模式结构模式,为什么是状态模式行为模式?

为什么代理模式是结构模式,为什么状态模式是行为模式.确定新模式的标准应被视为结构性或行为性的? 解决方案 模式是结构性的,如果关注点是如何组织对象之间的关系以形成更大的组件,而行为模式则关注对象的责任分配和之间的沟通他们 代理是结构性的,因为它充当另一个对象的代理,状态是行为的,因为状态被传递给对象以在运行时影响其行为. ..
发布时间:2020-07-09 23:09:44 其他开发

状态模式Java

我正在用Java学习设计模式 我正在通过一些链接进行操作.我正在尝试通过状态模式设计洗衣机 我对状态设计模式的实现有疑问 public interface State { public void openLid(); public void closeLid(); public void start(); public void stop(); p ..
发布时间:2020-07-09 23:09:42 Java开发

如何避免长时间切换..需要帮助重构

我需要帮助重构以下课程, 以下是一类Operation,在switch中有各种Operations: 我想避免使用switch语句.我读了几篇有关使用多态和状态模式的文章.但是当我重构类时,我无法访问许多变量,属性 我对于将操作用作抽象类还是实现接口感到困惑. 只是想知道在这种情况下哪种类型的重构会有所帮助 多态还是状态模式? 以及何时使用它们? public class Op ..

如何避免垂头丧气?

我有一个状态模式的实现,其中每个状态都处理从事件队列中获取的事件.因此,基类State具有纯虚方法void handleEvent(const Event*).事件继承了Event基类,但是每个事件都包含其数据,该数据可以具有不同的类型(例如int,string等). handleEvent必须确定接收到的事件的运行时类型,然后执行 downcast 以便提取事件数据.事件是动态创建的,并存储在队 ..
发布时间:2020-07-09 23:09:27 C/C++开发

防护条件不同的状态转换

在状态模式下如何建模? 状态A到触发器X和状态C1上的状态B,当前状态为A 当当前状态为A时,状态X会在触发器X和状态C2上变为状态C 通常如何完成?我有很多可能需要实施的警卫条件. 解决方案 这很标准,例如参见此示例. [不是根据功课编辑的!] 假设我理解正确: 您有一个事件(X),可以触发两个可能的过渡之一 根据适合的条件(C1或C2)选择向哪个火 ..
发布时间:2020-07-09 23:09:24 其他开发

状态设计模式中的过渡方法

我有一个状态机,其中有许多状态A--B--C--D--E.如果已验证某些条件,则有很多从C到A的过渡.对于每个状态,我都有一个扩展抽象类State的类,并且有一个将每个过渡方法委托给状态方法的管理器.问题是“国家可以直接调用管理器转换方法吗?".我仅在Internet上看到过这样的示例,其中有一个主类确切地知道发生了多少次过渡(即insertQuarter(),ejectQuarter(),tur ..
发布时间:2020-07-09 23:09:21 Java开发

纪念品设计模式和状态设计模式

Memento设计模式用于将对象还原到以前的状态,例如撤消.但是我们可以多次撤消和重做.我已经读过多次文章,但对它们还是相似或相辅相成,可以一起使用仍然不清楚. 状态模式可以与Memento Design模式相关或一起使用吗? 解决方案 “状态模式"中的“状态"与记忆模式启用的状态不同.状态模式的更好称呼是“模式模式".有关更多详细信息,请参见此描述. 现在,人们可能会使用纪念 ..
发布时间:2020-05-20 00:51:38 其他开发