5

我正在学习状态设计模式。我正在使用 C# ASP.Net(不确定语言是否相关)。

基本上,我的对象具有状态 A、B 和 C,以及在不同状态之间移动它的操作ActionAToBActionBtoAActionAtoC.

我想要做的是将这个对象绑定到屏幕上,并让按钮触发这些操作,但问题是:我如何只显示与对象所在状态相关的按钮,并在状态时显示/隐藏按钮变化?

我正在寻找与状态模式相匹配的优雅解决方案,或者任何可以使 UI 易于维护的建议。

4

1 回答 1

1

使用观察者模式和状态模式。让您的 Form 类(或您用于 UI 的任何东西)成为观察您的 ABC 对象的观察者。当这些对象改变它们的状态时,它们会通知视图,她会相应地更新自己,隐藏相应的按钮。我在博客中对此进行了介绍,请参见此处:Programate Algo Blog

如果你看到一些西班牙语,不要害怕,我和我的博客都是双语的:)

编辑:如果您希望您的 UI 更易于维护,您还应该研究一种用于分离视图和模型的模式。有很多,一些是MVC、MVP和MVMM。

于 2011-05-31T20:58:52.973 回答