6

我有一个通用(适用于 iPhone 和 iPad)应用程序。

在文件夹结构中将 iPad 与 iPhone 类分开有什么好处吗?

这是我的意思的一个例子:

- MyApp
    - Resources
    - Classes
        - iPad
            - SomeUniqueClassOnIPad.h
            - SomeUniqueClassOnIPad.m
        - iPhone
            - SomeUniqueClassOnIPhone.h
            - SomeUniqueClassOnIPhone.m
    - SomeUniversalClass.h
    - SomeUniversalClass.m

这在objective-c项目中很常见吗?

4

2 回答 2

9

编码中的规则之一是永远不要有重复的代码,所以如果您的视图正在做不同的事情,或者数据是否应该根据它是 iPad 还是 iPhone(例如,不同的数据源?)进行不同的处理,那么它肯定应该在不同的类中, 如果没有.. 那么没有。使用同一个类。

在这种情况下你可以实现的一个常见的东西是一种帮助器,如果你愿意的话,它是一个委托类,它处理代码中发生的所有常见方法和操作。

黄金法则:尽可能少写代码!更少的代码 == 更易于维护并且质量更高。因此,在不影响您的要求的情况下编写尽可能少的代码。此外,拆分代码使其更容易(单元)测试,从而更容易重用。

我希望这回答了你的问题。

更新
我知道有一个术语,只是可以想到它。重复代码被称为“DRY-violation”。DRY 代表 Don't Repeat Yourself,这是软件开发的一个原则,旨在减少各种信息的重复,在多层架构中特别有用。
更多信息:维基百科上的 DRY

于 2012-04-30T13:35:37.790 回答
1

对我来说,这取决于 iPhone 和 iPad 视图之间的共性。如果有单独的 xib 文件但它们都包含相同的元素,则很容易决定使用相同的类。

如果 iPhone 和 iPad 的 xib 文件具有独特的元素,那么分离类可能会更好。

另一种选择是创建一个由 iPhone 和 iPad 类共享的基类,用于您确实希望将它们分开的案例。基类将包含它们之间的通用代码,例如,启动数据请求或通用自定义视图。

于 2012-04-30T13:40:17.447 回答