什么时候创建新类?

时间:2012-05-10 17:21:27

标签: objective-c

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

此致

1 个答案:

答案 0 :(得分:3)

如果您遵循MVC模式,那么您的课程大部分应分为以下类别之一:

  • 控制器:UIKit / NS视图控制器,负责在这些视图上显示视图和从交互元素接收消息。
  • 视图:如果您的某个控制器提供的视图需要大量自定义逻辑才能呈现自己,那么将它分成自己的类可能更好。实质上,这是在使用Interface Builder(.xib文件)创建视图时完成的。
  • 模型:在您的应用程序中封装逻辑的对象。

例如,如果您根据此设计模式构建RSS查看器,则可能会生成以下类:

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

作为一般准则,您应该尝试遵守single responsibility principle - 每个班级应该承担一项责任,并且可以或多或少地自主执行任务。

在这种情况下,控制器负责处理单一视图的显示以及从该视图委派消息。视图负责显示数据。模型负责创建它们的单一用途 - 用于将数据从RSS提要映射到对象的RSS项,用于管理一组RSS项的RSS提要对象(添加,删除,可能通过{{获取更多内容) 1}})。

注意:根据Stack Overflow guidelines,你的问题有点模糊,所以这可能就是为什么它被低估了。考虑添加您面临的困境的具体示例或描述。