0

也许这是一个愚蠢的问题,但我想知道我们何时必须或何时建议创建新课程。这在我的脑海中并不是很清楚。现在,每个控制器只有一个类,仅此而已......我所有的代码都在这个类中。我认为这可能会更好...

问候

4

1 回答 1

3

如果您遵循 MVC 模式,那么在大多数情况下,您的类应该分为以下类别之一:

  • 控制器:UIKit/NS 视图控制器,负责呈现视图并从这些视图上的交互元素接收消息。
  • 视图:如果您的一个控制器呈现的视图需要大量自定义逻辑才能呈现自身,则将其分离到自己的类中可能是一个更好的主意。本质上,这是在使用 Interface Builder(.xib文件)创建视图时完成的。
  • 模型:在应用程序中封装逻辑的对象。

例如,如果您正在根据此设计模式构建一个 RSS 查看器,您可能会创建以下类:

  • 代表单个 RSS 项目的模型,以及代表 RSS 提要的模型。如果您使用自己的 RSS 提要解析器,您可能希望隔离在另一个类中获取条目所需的逻辑。
  • 处理显示提要和单个视图的控制器。控制器应该只关心呈现数据。对于 iOS 上的 RSS 查看器,您可能会将 aUINavigationControllerUITableViewController类的根视图控制器一起使用。点击表格单元格会推动另一个UIViewController负责显示单个 RSS 项目的单元格。
  • 虽然UITableController具有显示项目列表的默认视图,但单个项目可能需要自定义逻辑才能很好地显示。您可能想要创建一个视图类或.xib呈现这些。UIViewController负责在视图上填充数据(在 上设置值等IBOutlets.xib

作为一般准则,您应该尽量遵守单一职责原则——每个类都应该有单一职责,并且它可以或多或少自主地执行其任务。

在这种情况下,控制器负责处理单一类型视图的显示并从该视图委派消息。视图负责显示数据。模型负责创建它们的唯一目的——一个 RSS 项目,用于将数据从 RSS 提要映射到一个对象,一个 RSS 提要对象用于管理一组 RSS 项目(添加、删除,可能通过 获取更多NSURLRequest)。

注意:根据Stack Overflow 指南,您的问题有点模糊,所以这可能是它被否决的原因。考虑添加一个具体的例子或描述你所面临的困境。

于 2012-05-10T18:49:25.740 回答