У меня есть некоторый код, в котором модель содержит несколько классов, таких как (псевдокод vb.net, но это может быть любой язык OO):
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
Мне не очень нравится код в представлении, по понятным причинам
(что происходит, когда я получаю новый тип атрибута и т. д.). Мой вопрос, как следует
Я заменил это?
Я мог бы легко добавить метод к конкретным классам, но это загрязняет модель
с пользовательским интерфейсом, так что это ужасная идея.
Я мог бы переместить селектор на фабрику, но это, кажется, просто скрывает
проблема.
Кто-нибудь может посоветовать лучший подход?