假設您具有帶有Visibility屬性的控件A,B,C,D和E。您還有狀態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面板。這會改變什麼嗎?
萬歲狀態機! – 2009-05-26 20:22:19
喜歡這個名字。感謝您的迴應。 – 2009-05-26 20:24:09