Swift3.x - Open、Public、 Internal、 Fileprivate、Private关键字

访问控制(Access Control)
访问控制将限制其他源文件或者组件的代码访问你的代买块!这将可以实现隐藏代码的实现过程并对外提供特殊的接口供其访问和使用!


组件和源文件

Swift中的访问控制基于两个概念:组件、源文件!

  • 组件:为一个代码分布独立单元,例如:一个Framework或者一个App Bundle都可以称为组件!在Swift中使用其他的组件需要使用import关键字。
  • 源文件:在组件内的单独的源代码文件,通俗讲就是我们写代码的.swift文件,够明白吧O(∩_∩)O哈哈~

访问等级

Swift提供了5种不同的访问等级供开发者使用!

  • Open和Public
    可以被定义组件内的任何源文件访问,并且当前组件为引入的其他组件也是可以的!两者有什么不同,后面会介绍!
  • Internal
    可以被定义组件内的任何源文件访问,但是其他组件不能访问!
  • FilePrivate
    只能被当前Swift源文件访问
  • Private
    只能在当前定义的类内访问

Open访问等级为最高级的访问等级(约束最小)
Private访问等级为最低级的访问等级(约束最大)

Open访问仅仅应用于类和类的成员变量,其与Public访问的区别存在以下几点:

  • Public修饰的类,只能在组件内被继承!
  • Public修饰的类成员,只能在组件内被子类重载!
  • Open修饰的类,可以在组件内被继承,也可以在被引入当前组件的组件内继承!
  • Open修饰的类成员,可以在组件内被子类重载,也可以在被引入当前组件的组件内被子类重载!

参考资料:
https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/AccessControl.html#//apple_ref/doc/uid/TP40014097-CH41-ID3

Zeb

你可能感兴趣的:(Swift3.x - Open、Public、 Internal、 Fileprivate、Private关键字)