使用 Objective C 编写更模块化和可测试的 iOS 应用程序的建议
Posted
技术标签:
【中文标题】使用 Objective C 编写更模块化和可测试的 iOS 应用程序的建议【英文标题】:Suggestion for writing more modular and testable iOS app using Objective C 【发布时间】:2011-04-07 06:02:46 【问题描述】:我正在使用 Objective C 为 ios 设备编写应用程序。
看起来编写的代码是紧耦合的,重用非常困难。
对于使用 Objective C 编写更模块化的 iOS 应用程序有什么建议吗?特别容易测试。
【问题讨论】:
【参考方案1】:还有一些建议,我认为这是 objc 程序中的常见问题:
比一般的 objc 开发人员更喜欢协议而不是子类化(非常重要)
偏爱更小、更专业的对象
最小化全局对象(例如单例)
经常重复使用和测试
了解并接受 objc 类型/运行时的动态特性。不要只是将您最熟悉的语言的习语应用/近似于 objc。很有可能,您的程序会受到影响。
代码重用/后端:偏爱 C、C++、苹果的分布式类型和协议
将重要程序中的包/子库存根。这些应该独立构建。
注意您要重新实现的内容,并将通用实现移至库中
保持库小而专注,并注意它们的依赖关系。还期望该库可以在许多情况下使用。保持低警告,简单的公共接口,并使用漂亮的冗长描述性名称和前缀以避免平面命名空间中的冲突。
【讨论】:
【参考方案2】:您应该编写面向对象的代码;编写模块化、可重用、可测试对象的所有标准最佳实践在 Objective C 中的应用与在任何其他语言中一样多。
您有什么理由认为 Objective C 在这方面有所不同?
【讨论】:
【参考方案3】:以下是一些建议:
尝试将可重用组件作为单独的库子项目。 XCode 可以处理项目中的项目。 使用类别来扩展或修改内置类的行为。组件与您的其余代码隔离,非常易于测试 确保遵循 MVC 模式并且不要使控制器膨胀。将应用程序逻辑放在模型类中,这样它们就不会依赖于视图,这使得测试变得困难。【讨论】:
以上是关于使用 Objective C 编写更模块化和可测试的 iOS 应用程序的建议的主要内容,如果未能解决你的问题,请参考以下文章