2012-08-13 49 views
3

我创建了我的第一个iPhone应用程序,它在tableview中呈现类似流派的音轨。用户可以使用播放mp3的类似ipod的控件播放音轨。Objective-c类设计/组织

我所有的代码分为两大类:RootViewControllerCustomCell。我的RootViewControllerClass是巨大的。我假设这是糟糕的设计,将几乎所有的代码填入同一个类中?

最初,我认为这是有道理的,因为我只有一个视图控制器。为了练习更好的编码习惯,我想将我的RootViewController类分成更小的特定类(假设这是正确的做法?)。

下面是RootViewController,我打算分离成个别类的组件:

  • DataSource - 拉从服务器数据;修改并组织为的tableView
  • TopChartsView数据 - 包括在视图中修改音频轨道(数据源)通过最高评价每周/每月/所有时间
  • GenreChange按钮 - 包括在视图中以过滤则dataSource按钮按流派
  • AudioPlayerControls - 包括一种观点认为,类似到iPod控制

我是否正确地组织我的班按钮?我按功能组织班级似乎是有道理的。然而,我很难理解类在理想设计中应该如何相互作用。

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

回答

0

更多关于面向对象的应用程序编程,而不是特别关于iOS,我认为,你应该熟悉OO-Design的一些概念(如果你真的感兴趣),但从我的角度来看,你不必这样做。首先回答你的问题:

我假设它是差的设计,几乎所有的代码在一个类中?

有人说,所以......

我是否正确地组织我的班?

很难说,根据您提供的信息。

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

不一定。

但是:如果你的代码工作正常,你是唯一的,谁的工作,你不打算重新使用你的代码作为一个图书馆或通过从它的全班级(即如果你只打算复制&粘贴),不需要为了这样做而重构所有的东西。

即使:如果你想继续前进,或者如果你打算编写库或其他东西,那么了解OO(有时甚至是有趣的)是个好主意。由于您使用objective-c this one from apple's docs可能是一个很好的开始学习。如果你阅读了一些关于OO编程和(更重要的)花时间和阅读其他代码,你就会知道如何以及何时组织你自己的代码是有用的。

1

设计iOS应用程序主要是关于MVC设计模式,这意味着您需要分离模型,视图和控制器。在你的情况下,我会把DataSource逻辑放在一个或多个文件中(这是你的模型)。这也使得稍后在另一个视图控制器中重复使用相同的逻辑变得更容易。如果大量代码驻留在那里,也许你也可以继承你的UITableView。

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