我可以在我的应用程序中使用MVC吗?

时间:2014-04-09 15:33:18

标签: ios oop model-view-controller

我制作了一个应用程序,但我想重构它以遵循已知的设计模式(MVC)。有人可以解释什么代码应该在什么类

所以现在我有这些课程:

ViewController
-- properties
name
age
-- methods

DetailViewController
-- properties
detail array
-- methods

FavoritesViewController (tableview)
-- properties
favorites array
-- methods

AllNamesViewController (tableview)
-- properties
name
age
-- methods

该应用程序的工作方式如下:

用户打开应用程序 - 他可以点击问号并以json格式获取名称和其他属性。这将打开DetailViewController,并将名称和年龄推送到DetailViewController的详细数组中。

收藏夹 - 他可以返回到开始屏幕并向左滑动以获取FavoritesViewController并查看他保存的名称...当他点击它时,它会返回到DetailsViewController并将收藏夹数组推送到详细数组中。

AllNames - 当他点击一个名字时,他可以向右滑动所有具有数组中所有名称的名称,然后将其转到DetailViewController并将数组元素推送到DetailViewController数组中。

什么样的对象应该是数据模型?那数据模型怎么样?

json方法的部分应该始终位于控制器中还是数据模型中?

如何确定数据模型应该是什么。 我阅读了很多书并按照教程进行了操作,但我从来没有看到什么东西应该在数据模型中。

所以有人可以用我制作的应用程序澄清它,以便我可以得到它" OOOHH"想法:))

1 个答案:

答案 0 :(得分:1)

根据MVC模式,您有三个独立的组件:模型,视图,控制器。

在iOS中,viewController在MVC模式中扮演Controller的角色 - 它用于处理视图和数据之间的通信。

viewController的view属性在MVC模式中扮演View的角色 - 这是要显示的UI。

你如何实现模型部分取决于你,但从我对你的问题的理解,看起来你有两个职责 - 一个保存你的信息的数据对象,以及存储这些数据(用JSON)。 p>

我会为此创建两个类,一个只是一个数据对象(称为Person或其他东西,不确定你的用例是什么),它具有你需要存储的任何数据的属性,而且很少(如果有的话)实际方法。第二种是某种存储类,您可以在其中传入要存储的人员,然后再查询它们(即getAllgetFavorites等等。)。该类将处理与JSON之间的转换,并且其接口将专门处理Person对象。

然后,您的控制器将查询此存储类,检索人员数组,并以某种方式显示它们(在表中看起来像)。