iOS - 处理大型且不断增长的 UIViewController 类

标签 ios oop model-view-controller uiviewcontroller

我有一个 UIViewController,随着时间的推移,它添加了很多委托(delegate)事件,这使得 Controller 类变得非常大。 UIViewController 类包含相当多的 View 管理方法,这些方法从事件委托(delegate)方法调用以管理 Controller 正在管理的 UIView。

我现在正在向类中添加更多的 UIActionSheet 委托(delegate)事件。我的 Controller 类越来越大,我想我应该打破 UIActionSheet 委托(delegate)事件并将它们放在一个单独的委托(delegate)类中。然后,这个单独的委托(delegate)类将不得不回调到 View Controller 类中,以使 View Controller 相应地调整 View ,使用 View Controller 中的 View 管理方法。 ( View Controller 访问 View 所代表的单独模型对象)。

我可以看到采用这种突破性方法的利弊。向 Controller 添加越来越多的委托(delegate)事件感觉不对,但是为不同类别的事件创建单独的类然后需要回调到 Controller 似乎也引入了不必要的复杂性和混淆层。大型 Controller 类“简单明了”但感觉不对,而使用大量不同的委托(delegate)类会更加复杂和复杂,但会导致类更小。

谁能提供一些关于这个主题的智慧之言,或许可以为我指出一些关于这个问题的特定 iOS 阅读 Material ?

非常感谢。

最佳答案

我对此事的处理方式是:

  1. 让它发挥作用
  2. 让它成为切肉刀
  3. 回到 1。 (如果您在某个领域有经验,则 1 和 2 都在同一轮)

因此,如果代码工作应用程序看起来不错,但你发现 ups 某些类中有 100 个方法,那么尝试不同的设计模式(如果你还没有)并使用那些切肉刀的想法将代码分离到不同的类,委托(delegate),必要时将它们封装起来。

http://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/CocoaFundamentals/CocoaDesignPatterns/CocoaDesignPatterns.html

以防万一链接到 Cocoa 设计模式建议,我不时研究 Pro objective c design patterns for ios。可能不是最好的书,但它基于 iOS 上下文中的“四人组”设计模式书。

希望这至少在某种程度上有所帮助,

干杯

关于iOS - 处理大型且不断增长的 UIViewController 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14749167/

相关文章:

ios - 在委托(delegate)方法返回时使用 Cocoa 异步库的 Phonegap 插件中缺少回调 ID

c# - 在类和接口(interface)之间进行选择

c++ - QTreeView 与 setIndexWidget

javascript - 什么时候在 Javascript 中使用 MVC?

ios - 谁的 View 不是窗口层次问题?

ios - UIButton 未接收触摸事件

java - 可以使用具体类来实现抽象吗?

javascript - OOP 中 Controller 类常见吗

iOS:EXC_BAD_ACCESS(代码=2,地址=0x42)

python - 面向对象编程基础(python)