假设您有控件 A、B、C、D 和 E,它们都具有 Visibility 属性。您还有状态 1、2、3、4、5 和 6,其中将显示控件的各种组合。
目前这是由每个状态的 switch 语句处理的:即
Select Case PageState
case "1"
a.visible = false
b.visible = true
c.visible = false
d.visible = true
e.visible = false
case "2"
a.visible = true
b.visible = true
c.visible = false
d.visible = true
e.visible = false
case ...
End Select
您可以想象,这会很痛苦,因为每个状态都需要为每个控件显示/隐藏语句。我如何重构它以便添加控件和/或状态变得微不足道?
我的第一直觉是扩展控件并添加它应该显示的状态集合,但这听起来有点矫枉过正。
编辑 我在我的问题中故意含糊其词,以防这有其他影响。在我当前的实例中,有问题的“控件”是 ASP 面板。这会改变什么吗?
最佳答案
关于asp.net - 重构设计模式 : displaying/hiding different combinations of controls based on state,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/912437/