Objective c 目标-c类设计/组织

Objective c 目标-c类设计/组织,objective-c,ios,Objective C,Ios,我创建了我的第一个iPhone应用程序,它在tableview中呈现类似类型的音频曲目。用户可以使用类似ipod的控件播放音频曲目,播放mp3 我所有的代码都分为两大类:RootViewController和CustomCell 我的RootViewControllerClass非常庞大。我假设在一个类中填充几乎所有的代码是糟糕的设计 起初,我认为这是有意义的,因为我只有一个视图控制器。为了实践更好的编码约定,我想将我的RootViewController类划分为更小的特定类(假设这是正确的实践

我创建了我的第一个iPhone应用程序,它在tableview中呈现类似类型的音频曲目。用户可以使用类似ipod的控件播放音频曲目,播放mp3

我所有的代码都分为两大类:
RootViewController
CustomCell

我的
RootViewControllerClass
非常庞大。我假设在一个类中填充几乎所有的代码是糟糕的设计

起初,我认为这是有意义的,因为我只有一个视图控制器。为了实践更好的编码约定,我想将我的
RootViewController
类划分为更小的特定类(假设这是正确的实践?)

下面是
RootViewController
的组件,我计划将它们分为几个类:

  • 数据源
    -从服务器提取数据;修改和组织tableView的数据
  • TopChartsView
    -包括视图中的按钮,可按最高评级的每周/每月/所有时间修改音频曲目(数据源)
  • GenreChange
    -视图中包含按流派筛选数据源的按钮
  • AudioPlayerControl
    -视图中包含与iPod控件类似的按钮
我的课程组织正确吗?我用函数来组织我的课程似乎是有道理的。然而,在理想的设计中,我很难理解类应该如何相互交互


我是否使用协议和委托将我的类链接在一起?

设计iOS应用程序主要是关于MVC设计模式,这意味着您将模型、视图和控制器分离。在您的情况下,我会将数据源逻辑放在一个或多个单独的文件中(这是您的模型)。这也使得以后在另一个视图控制器中更容易重用相同的逻辑。如果有很多代码驻留在UITableView中,那么也可以将其子类化


协议和委托是连接类的好方法,它们在良好的设计中经常使用。由于您的应用程序中没有太多ViewController(据我所知),因此没有太多机会使用它们,如果我错了,请纠正我;)

这更多的是关于面向对象编程,而不是关于iOS,我认为,你应该熟悉OO设计的一些概念(如果你真的感兴趣的话),但在我看来,你不必。首先回答您的问题:

我假设在一个类中填充几乎所有的代码是糟糕的设计

有人这么说

我的课程组织正确吗

根据你提供的信息很难说

我是否使用协议和委托将我的类链接在一起

不一定

但是:如果你的代码运行良好,那么你是唯一一个使用它的人,你不打算将你的代码作为库重复使用,也不打算从中获取完整的类(即,如果你只打算复制和粘贴),那么就不需要为了实现它而重构一切

即使:如果你想继续前进,或者如果你计划编写库或其他东西,学习OO将是一个好主意(有时甚至很有趣)。既然您正在使用objective-c,那么这将是一个学习的良好开端

:如果你读了一些关于OO编程的知识,并且(更重要的是)花时间阅读其他人的代码,你就会知道如何以及何时组织自己的代码是有用的