所以我目前正在为体育创建一个类似Paint的应用程序。对于每种类型的运动,你都会有一些“形状”(篮球中的球/篮球,冰球中的冰球/球等)。
现在我的主要问题是如何设计这些形状。据我了解,主要有3种选择:
我对Shape-objects有以下要求:
哪种选择最符合我的要求?
答案 0 :(得分:0)
由于你有一个清晰的域模型(球,冰球等),我建议将它们建模为单独的对象(ViewModels),然后使用DataTemplates在视觉上对它们进行样式化。这样,您可以最大程度地控制序列化的内容,并且可以独立于数据模型对视觉效果进行版本化。
序列化将由您的数据模型处理。 DataTemplates可能使用自定义形状(仅从Shape派生)来进行实际渲染。 Adorners可以处理任何UIElements,如果您使用数据绑定将相关属性绑定回ViewModel,则可以获得要序列化的所需数据。 至于默认值的机制,只需让Ball和Puck类的默认构造函数设置正确的值(直径,重量等)
快乐编码