在同一个项目中针对不同的目标可以有多个应用程序委托吗?

Has*_*lil 4 cocoa-touch uiapplicationdelegate ios

我参与开发 iOS 应用程序。首先让我震惊的是顶级项目中的多个应用程序委托,它有多个目标输出。我确实知道每个子项目都有自己的应用程序委托。我的团队成员告诉我,这些应用程序委托用于不同的目标,但它们具有几乎相同的代码,除了一些变量源自不同的类或子项目。在一个项目中拥有多个应用程序委托有哪些优点和缺点?

jus*_*tin 5

如果应用程序委托中有实际上不同的内容,那么这种结构就很好。如果其中一些相同,请考虑如何重组该代码(这样就不会出现重复的代码)。将公共代码放在超类中是一种方法,但还有其他几种方法。因为子类化是如此强大,所以通常更可取的是另一种方法(例如组合)。

应用程序委托的一个问题是它会影响您的资源——即,如果类名不同,那么当这些资源可能相同时,您可能会面临资源(例如 NIB)的细微差异。

基本经验法则:如果您发现自己面临重复代码,请找到一种方法来避免重复该代码,或者在重复代码已经重复的情况下删除该重复代码。