3

我创建了我的第一个 iPhone 应用程序,它在表格视图中呈现类似类型的音轨。用户可以使用流 mp3 的类似 ipod 的控件播放音轨。

我所有的代码都在两个主要类中:RootViewControllerCustomCell.

RootViewControllerClass的是巨大的。我假设将几乎所有代码都放在一个类中是一种糟糕的设计?

最初,我认为这是有道理的,因为我只有一个 View Controller。为了练习更好的编码约定,我想把我的RootViewController班级分成更小、更具体的班级(假设这是正确的做法?)。

以下是RootViewController我计划分成单独的类的组件:

  • DataSource- 从服务器中提取数据;修改和组织 tableView 的数据
  • TopChartsView- 在视图中包含按钮以按最高评价的每周/每月/所有时间修改音轨(数据源)
  • GenreChange- 在视图中包含按钮以按流派过滤数据源
  • AudioPlayerControls- 在视图中包含类似于 iPod 控件的按钮

我是否正确地组织了我的课程?我按功能组织课程似乎是有道理的。但是,我很难掌握在理想设计中类应该如何相互交互。

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

4

2 回答 2

1

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

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

于 2012-08-13T16:14:44.007 回答
0

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

我假设将几乎所有代码都放在一个类中是一种糟糕的设计?

有人这么说...

我是否正确地组织了我的课程?

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

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

不必要。

但是:如果您的代码运行良好,那么您是唯一一个在处理它的人,您不打算将您的代码重新用作库或从中获取完整的类(即,如果您只打算复制和粘贴),没有必要仅仅为了重构而重构一切。

即使:如果您想继续前进,或者如果您打算编写库或其他东西,那么学习 OO 将是一个好主意(有时它甚至很有趣)。由于您正在使用objective-c ,因此苹果文档中的这个可能是学习的良好开端。

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

于 2012-08-13T16:52:38.393 回答