【发布时间】:2012-10-18 19:01:53
【问题描述】:
我正在开发一个 iOS 应用。让我印象深刻的第一件事是顶级项目中的多个应用程序委托,它有多个目标输出。我知道每个子项目都有自己的应用程序委托。我的团队成员告诉我,这些应用程序委托用于不同的目标,但它们具有几乎相同的代码,除了一些变量来自不同的类或子项目。在一个项目中拥有多个应用代理的优缺点是什么?
【问题讨论】:
标签: ios cocoa-touch uiapplicationdelegate
我正在开发一个 iOS 应用。让我印象深刻的第一件事是顶级项目中的多个应用程序委托,它有多个目标输出。我知道每个子项目都有自己的应用程序委托。我的团队成员告诉我,这些应用程序委托用于不同的目标,但它们具有几乎相同的代码,除了一些变量来自不同的类或子项目。在一个项目中拥有多个应用代理的优缺点是什么?
【问题讨论】:
标签: ios cocoa-touch uiapplicationdelegate
这个结构很好,如果应用委托中有一些实际上不同的东西。如果其中一些相同,请考虑如何重组该代码(这样您就没有重复的代码)。将公共代码放在超类中是一种方法,但还有其他几种方法。由于子类化非常强大,因此通常更可取的是另一种方法(例如组合)。
应用程序委托的一个问题是它可能会影响您的资源 - 即,如果类名不同,那么当这些资源可能完全相同时,您可能会面临资源的细微差异(例如 NIB)。
基本经验法则:如果您发现自己面临重复代码,请找到避免重复该代码的方法,或者在该重复代码已经重复的情况下删除该重复代码。 p>
【讨论】:
MONApp1DataProvider 或MONApp2DataProvider。当然,它们要么采用相同的协议,要么有一个共同的超类来定制它们的行为。