Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
它是包装器对象吗?还是状态对象本身?
我可以看看一些例子吗?
本质上,您将拥有有关状态更改的业务逻辑。这可能包括“state_entered”触发器和“state_leave”触发器。
您可能希望“state_idle”触发状态可以进入自身的机会。
示例将需要您的代码来作为其基础。
在状态模式中,业务逻辑关注从一种状态到下一种状态的转换。你有两个选择,两者都同样有效。
状态更改逻辑可能存在于状态对象本身中,这使得向系统中添加新状态对象非常容易,但更紧密地耦合子类。
或者状态改变逻辑可能驻留在上下文中。因此,各州本身并不了解彼此。添加新状态将需要修改上下文。
有几个很好的在线模式资源可以为您提供很好的示例。比如这个网站。或者这个带有特定 c# 示例的。
请更具体地回答您的问题,因为答案可能取决于具体的用例。但是,通常我希望状态实现一个通用的内部接口,该接口由包装器对象使用,而后者又实现了一种公共接口。因此业务逻辑将被拆分,因此基本上分为两种类型。