隐藏的潜力

我经常问:“拥有私有方法的意义何在?”似乎没有必要隐藏一些。 直到我开始将大型功能分解为许多较小的功能。 然后,这成为访问Xcode的自动完成功能时出现过多方法的问题。

那只是六个功能! 我通常只有6个用于初始化设置! 既然我已经写了我的类,那么现在我就知道了我的类,但是那不是我们作为程序员应该担心的。 从现在开始两周就是我们自己,或者是新人跳入代码以提供帮助,甚至进行审核! (喘气)

使用私有(访问控制)可以使代码更具可读性。 如果我查看了一个类,并且发现有一个私有方法,我将立即知道它将不会在代码中的其他任何地方使用,并且仅与该类相关。

那么,什么时候应该使用访问控制功能(例如private)? 我已经开始简单地将它们用于初始化中的任何调用。 之后,我将私有化我知道不会在类或结构外部调用的帮助器方法。

在此类中,仅在update()中调用motionController(),而其他四个私有方法都在MovementController()中调用。 我的其余代码不需要知道该兔子需要移动的方式或原因,只需要这样做即可。

除了私有之外,还有其他访问级别,但是我们现在唯一关心的另一个级别是文件私有。 它的工作原理与private非常相似,但是它会跳过private变量或方法所驻留的范围,并提供对整个文件的访问权限。 那么,为什么要使用fileprivate而不是private?

好吧,我们通常不! 我唯一一次使用fileprivate是在类的扩展中。 我喜欢通过使用扩展来组织代码,将与这些扩展类似的功能和方法组合在一起,以使其对我可读。 但是,由于扩展位于不同的括号内,因此范围也不同,因此私有方法无法访问其他扩展。 如果所有扩展名都在同一个.swift文件中,则fileprivate将允许这些方法私有并且仍然可用。

在此示例中,我具有一个扩展,其中包含与需要初始化的子视图相关的所有方法。 因为loadSubviews()是在扩展名外部调用的,所以它是fileprivate的。

因此,总结起来,需要一些时间来习惯使用private和fileprivate。 在较小的项目中,它可能不太重要,但是我看到了它在组织中的潜力,尤其是当我们进入建筑设计领域时。 并非所有方法都是平等创建的! 有些人仍然生活在阴影中,但他们仍然做得很好。