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