2

它是包装器对象吗?还是状态对象本身?

我可以看看一些例子吗?

4

3 回答 3

0

本质上,您将拥有有关状态更改的业务逻辑。这可能包括“state_entered”触发器和“state_leave”触发器。

您可能希望“state_idle”触发状态可以进入自身的机会。

示例将需要您的代码来作为其基础。

于 2011-04-29T21:40:46.827 回答
0

在状态模式中,业务逻辑关注从一种状态到下一种状态的转换。你有两个选择,两者都同样有效。

状态更改逻辑可能存在于状态对象本身中,这使得向系统中添加新状态对象非常容易,但更紧密地耦合子类。

或者状态改变逻辑可能驻留在上下文中。因此,各州本身并不了解彼此。添加新状态将需要修改上下文。

有几个很好的在线模式资源可以为您提供很好的示例。比如这个网站。或者这个带有特定 c# 示例的。

于 2011-04-29T23:04:10.363 回答
-2

请更具体地回答您的问题,因为答案可能取决于具体的用例。但是,通常我希望状态实现一个通用的内部接口,该接口由包装器对象使用,而后者又实现了一种公共接口。因此业务逻辑将被拆分,因此基本上分为两种类型。

于 2011-04-29T21:37:28.023 回答