我正在学习状态设计模式。我正在使用 C# ASP.Net(不确定语言是否相关)。
基本上,我的对象具有状态 A、B 和 C,以及在不同状态之间移动它的操作ActionAToB
:ActionBtoA
和ActionAtoC
.
我想要做的是将这个对象绑定到屏幕上,并让按钮触发这些操作,但问题是:我如何只显示与对象所在状态相关的按钮,并在状态时显示/隐藏按钮变化?
我正在寻找与状态模式相匹配的优雅解决方案,或者任何可以使 UI 易于维护的建议。
我正在学习状态设计模式。我正在使用 C# ASP.Net(不确定语言是否相关)。
基本上,我的对象具有状态 A、B 和 C,以及在不同状态之间移动它的操作ActionAToB
:ActionBtoA
和ActionAtoC
.
我想要做的是将这个对象绑定到屏幕上,并让按钮触发这些操作,但问题是:我如何只显示与对象所在状态相关的按钮,并在状态时显示/隐藏按钮变化?
我正在寻找与状态模式相匹配的优雅解决方案,或者任何可以使 UI 易于维护的建议。
使用观察者模式和状态模式。让您的 Form 类(或您用于 UI 的任何东西)成为观察您的 ABC 对象的观察者。当这些对象改变它们的状态时,它们会通知视图,她会相应地更新自己,隐藏相应的按钮。我在博客中对此进行了介绍,请参见此处:Programate Algo Blog
如果你看到一些西班牙语,不要害怕,我和我的博客都是双语的:)
编辑:如果您希望您的 UI 更易于维护,您还应该研究一种用于分离视图和模型的模式。有很多,一些是MVC、MVP和MVMM。