从View模型中分离数据模型

时间:2014-03-27 12:08:38

标签: ios xamarin

我有一种设计MVC组件的方法,即将数据模型(数据库持久性)与我的组件的视图模型分开,尽管它们在理论上代表相同的元素。我只是稍后映射了两个模型。

你认为这是一个好方法吗?或者我应该尝试只制作一个模型?

3 个答案:

答案 0 :(得分:0)

当我遇到这样的问题时,我尝试只创建我需要的必要类。这将有助于保持项目更小,并避免混淆您应该使用的类或对象。我总是试图描绘下一个人来到我的代码,以及他会想到什么以及他会在我的逻辑中绊倒的地方。如果您要从数据库中检索的多个模型中创建对象,我只会使用ViewModel。

答案 1 :(得分:0)

我只使用带有get / set方法的类来操作DB和VIEW的映射。这些是发展政策。使用混合对象具有更大的亮度,项目在运行时正在开发中。在某些情况下,类中可能存在冗余。渴望完美的代码非常重要: - )

答案 2 :(得分:0)

根据您的陈述,您似乎已经创建了一个重复数据模型,该模型映射到第二个模型,并想知道这是否是一种最佳方法。

<强>建议

我认为这不一定是最佳解决方案,但很大程度上取决于您的用例。我通常做的是创建一个代表唯一实体的数据模型。然后我创建了一个数据管理类来处理数据的交互和用例。数据管理器将涵盖诸如从集合中添加/删除自定义对象之类的事情。我采用的方法基本上是Apple使用它的核心数据框架(docs)的轻量级方法。

因此,例如,可以使用字典,数组或集合(或这些的某些组合)来管理自定义对象的集合以及充当数据管理器的共享单例对象,并利用内置的归档/取消归档功能处理应用程序的数据图形要求。实际上,结果与简单使用Core Data大致相同,所以我绝对建议您熟悉Apple使用的标准方法(默认情况下它嵌入到每个项目模板中)。

好消息是,一旦你选择了一种方法并且非常仔细地开发它,你就可以得到一个可以在许多不同项目中重复使用的可共享资源。因此,例如,数据管理器类可以在内部(文件,本地URL等)和外部(URL,soa等)封装数据移动,甚至可以处理缓存,序列化等。