0
我有一些代碼在模型中包含了一些類,如(vb.net僞代碼,但可以是任何面向對象的語言):避免子類型選擇
Enum AttributeType
Boolean
Date
String
End Enum
MustInherit Class Attibute
Must Override Function Type As AttributeType
End Class
Class BooleanAttribute: Attribute
Function Type As AttributeType
Return AttributeType.Boolean
End Function
End Class
而且視圖包含像一些代碼:
Select Case AttributeType
Case Boolean
//Display checkbox control
Case Date
//Display date picker control
Case String
//Display textbox control
End Select
我真的不喜歡在視圖中的代碼,對希望顯而易見的原因 (當我得到一個新的屬性類型等發生了什麼)。我的問題是,我應該如何替換 呢?
我可以很容易地添加一個方法到具體的類,但是用UI的東西污染 模型,所以這是一個可怕的想法。
我可以將選擇移入工廠,但似乎只是隱藏了 問題。
任何人都可以建議一個更好的方法嗎?