![]() |
1
1
当你想扩展案例时,特别是当你的同事没有上过逻辑设计课程时,必须考虑到一些额外的复杂性:
处理这种重复出现的设计问题的典型方法是 state pattern . 我必须说,它也可能变得相当麻烦,但拥有它至少会让您找到“一个”状态机,而不是到处重写代码,总的来说,我们努力提高可读性和可维护性。 下面是一个围绕状态模式的典型包装器的示例(取自 this 实现,)这些是常用的,因为它们的语法消除了类中实现状态的复杂性:
如你所见,有
|
![]() |
2
1
目前的问题模棱两可。 如果需要状态模式,请对派生状态(如newstate)实现句柄。 对对象调用句柄,该对象调用state.handle() 如果希望动态委派给方法重载,请实现handle(state1 s)、handle(state2s)等。通过将state强制转换为dynamic来调用它们,因此:handle((dynamic)state) |
![]() |
tsp · Q: 如何在UML状态机转换中处理多个条件 7 年前 |
![]() |
smwikipedia · 如何理解为ANTLR语法生成的ATN图? 8 年前 |
![]() |
Mate · UNITY3D如何同时在同一个对象上制作多个动画? 8 年前 |
![]() |
Karthik · 你好,我是VHDL编程新手,请帮助我解决这些错误 10 年前 |
|
Sean L · 使用状态机进行水平推进?[已关闭] 12 年前 |