Swift 訪問控制
模組 Module
模組 是程式碼分佈的單一單元。比如一個被作為一個單位編譯和釋出,別且可以被其它模組用import
匯入的框架或應用。
Xcode中的每個編譯目標(build target)比如app bundle或者framework在Swift中都是被作為單獨的模組。
原始檔source file 是模組中的單獨Swift原始碼檔案也就是應用或者框架的一個檔案.
訪問等級 Access Levels
Swift 提供了五種不同的訪問等級。
- Open 和 Pubilc 訪問等級可以在模組中的任何原始檔內訪問,也可以在其它匯入該模組的原始檔中被訪問。一般在設定框架的介面的時候用這兩個屬性。
- Internal 訪問等級可以在所定義的模組中任何原始檔內訪問。一般在定義框架或者應用的內部結構時使用。
- File-private訪問等級只能在該檔案內訪問。一般在整個都用的地方定義。對外部來說具體實現是隱藏的。
- Private 訪問等級限制了例項在封閉的宣告中,即使是同一個檔案的擴充套件也不能訪問。一般在用在那些僅在當前的宣告中使用的程式碼部分。
Open訪問等級僅用在類和類成員,與Public的區別如下。
- Public (或者比Public限制等級更高的訪問等級)定義的類,僅可在他們被定義的模組中定義子類。
- Public(或者比Public限制等級更高的訪問等級) 定義的類成員,僅可在他們被定義的模組中被他們的子類重寫。
- Open 定義的類可以在他們被定義的模組和其它匯入他們的模組中定義子類。
- Open 定義的類成員可以在他們被定義的模組和其它匯入他們的模組中重寫。
把類標記為Open就意味著已經需要考慮好了外部模組將它作為基類的影響。
簡而言之,Open定義的類可以在匯入它的模組中重寫定義子類,類成員可以重寫。 而Public和其它級別都是不可以。
選擇
在被匯入的時候支援重寫 -> Open
在被匯入的檔案可以訪問 -> Public
在自己的模組中支援所有檔案訪問 -> Internal
在自己所在檔案中可以訪問 -> Fileprivate
在自己所定義的部分可以訪問(擴充套件都不可以訪問)-> Private
相關文章
- Swift 中的訪問控制Swift
- Swift的訪問控制講解Swift
- Swift 新特性 – 訪問控制(Access Control)Swift
- iOS學習筆記49 Swift(九)訪問控制iOS筆記Swift
- Swift 3必看:新的訪問控制fileprivate和openSwift
- Swift 中 Selector 方法的訪問許可權控制問題Swift訪問許可權
- Mongodb訪問控制MongoDB
- Flask——訪問控制Flask
- RabbitMQ訪問控制MQ
- Nginx訪問控制Nginx
- 檔案和目錄的訪問控制(2)新增訪問控制
- ABAC訪問控制模型模型
- JoomlaACL訪問控制列表OOM
- 類的訪問控制
- Swift網路訪問庫Alamofire訪問httpslocalhost伺服器SwiftHTTPlocalhost伺服器
- Swift4.0 訪問許可權Swift訪問許可權
- Swift3集合訪問Swift
- IOS - ACL (訪問控制列表)iOS
- HTTP之訪問控制「CORS」HTTPCORS
- Vue前端訪問控制方案Vue前端
- Ubuntu 增加埠訪問控制Ubuntu
- web application 訪問控制WebAPP
- 控制資料訪問(一)
- openGauss 訪問控制模型模型
- Swift iOS : 訪問 https 伺服器SwiftiOSHTTP伺服器
- weblogic控制檯訪問慢問題Web
- 006.Nginx訪問控制Nginx
- Nginx 對訪問量的控制Nginx
- Casbin訪問控制框架入門框架
- 遠端訪問及控制——ssh
- 訪問控制之9種元素
- Oracle資料庫訪問控制Oracle資料庫
- SSH遠端訪問及控制
- 用訪問控制列表實現網路單向訪問(轉)
- Nginx訪問控制_IP訪問控制(http_access_module)原理、侷限性、解決方法講解NginxHTTP
- CentOS 中 TCP Wrappers訪問控制CentOSTCPAPP
- Java 訪問許可權控制(6)Java訪問許可權
- Struts2實現訪問控制