Swift 访问控制机制

2020-07-28  本文已影响0人  秋雁上海

概述

隐藏实现机制,仅暴露对应的接口和 API 给外部调用者,是面向对象的最佳实践之一。访问控制机制(Access Control)是实现此机制的利器之一。类似于 c++、Java、C#等,Swift 语言也加入了访问控制机制,而且颗粒度更细,以便对代码进行更精细化的控制。

访问控制的施加对象

模块和源文件

访问控制表

Access Level
(访问级别)
继承和 override 外部
(App等)
module
(模块)
source file
(当前代码文件)
类/结构 说明
open 最高等级。在外部模块中,可以继承,也可以 override。
public 公开。在外部模块中,不可继承和 override。
internal 缺省访问控制级别
模块内部均可访问。
fileprivate 仅当前源文件内部访问。
private 仅当前源代码的当前类、结构内部访问。

访问级别的基本原则

Swift 的访问级别遵循一条基本原则:实体不能被定义在低访问级别的实体中。
例如:

例外情况是在单元测试中,测试案例可以访问任何内部实体。

访问控制语法

open class SomeOpenClass {}
public class SomePublicClass {}
internal class SomeInternalClass {}
fileprivate class SomeFilePrivateClass {}
private class SomePrivateClass {}

open var someOpenVariable = 0
public var somePublicVariable = 0
internal let someInternalConstant = 0
fileprivate func someFilePrivateFunction() {}
private func somePrivateFunction() {}

参考

上一篇 下一篇

猜你喜欢

热点阅读