gpt4 book ai didi

objective-c - 让 Objective-C 类看起来很漂亮

转载 作者:IT老高 更新时间:2023-10-28 11:48:22 27 4
gpt4 key购买 nike

我想就Objective C 中的代码异味,特别是Cocoa Touch 向大家征求意见。我正在开发一款相当复杂的游戏,并且即将开始 Great December Refactoring。

我的很多类,尤其是模型,都充满了处理内部业务逻辑的方法;我将把它们隐藏在一个私有(private)类别中,在我与大量头文件的 war 中。那些私有(private)类别包含大量声明,这让我感到不安……几乎就像 Objective-C 让我对所有这些方法感到内疚一样。

我重构得越多(一件好事!),我就越需要维护所有这些重复(不太好)。就是感觉不对。

在像 Ruby 这样的语言中,社区非常强调非常简短、清晰、漂亮的方法。我的问题是,对于 Objective C(特别是 Cocoa Touch),你的方法有多长,你的 Controller 有多大,每个类有多少方法在你的项目中变得很典型?在 Objective C 中是否有任何由短方法组成的类的特别好的、漂亮的示例,或者这根本不是语言文化的重要组成部分?

披露:我目前正在阅读“The Little Schemer”,这应该可以解释我的悲伤,回复: Objective-C 。

最佳答案

是主观的。对我来说,如果一个 Objective-C 类是可读的(我知道它应该做什么)和可维护的(我可以看到哪些部分负责做什么),那么它就是美丽的。我也不喜欢被一个不熟悉的习语抛弃阅读代码。有点像当你在读一本书时,你读到的东西会让你脱离沉浸感并提醒你正在阅读。

你可能会得到很多不同的、相互排斥的建议,但这是我的想法。

  • 私有(private)方法属于私有(private)类别并没有错。这就是它的用途。如果您不喜欢阻塞文件的声明,请在 IDE 中使用代码折叠,或者将您的扩展作为一个类别放在不同的文件中。
  • 将相关方法组合在一起,并用#pragma mark语句进行标记
  • 无论您使用何种代码布局,一致性都很重要。花几分钟时间写下你自己的指南(这里是 mine),所以如果你忘记了你应该做什么,你有一个引用。
  • Controller 不必是委托(delegate)和数据源,您始终可以为这些设置其他类。
  • 对方法和属性使用描述性名称。是的,您可以记录它们,但是当 Xcode 应用代码完成时,您看不到文档,其中命名良好的方法和属性得到了返回。此外,如果在代码本身发生变化时没有更新代码注释,它们就会变得陈旧。
  • 不要尝试编写聪明的代码。您可能认为将一系列方法调用链接在一行上会更好,但编译器在优化方面比您想象的要好。如果可以提高可读性,则可以使用临时变量来保存值(大多数情况下这些只是指针,所以相对较小)。 编写供人类阅读的代码
  • DRY 与其他语言一样适用于 Objective-C。不要担心将代码重构为更多方法。有很多方法,只要有用就没有错。

关于objective-c - 让 Objective-C 类看起来很漂亮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4395488/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com