2014-03-27 59 views
1

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

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

回答

0

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

0

我只使用get/set方法来操作数据库和视图的映射。这些是发展政策。在运行时开发项目时,使用混合对象有更大的轻量级。在某些情况下,类可能会有冗余。重要的是要追求完美的代码:-)

0

根据你的陈述,你似乎创建了一个映射到第二个模型的重复数据模型,并且想知道这是否是最优的做法。

建议

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

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

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