訪問控制(Access Control)
訪問控制將限制其他源文件或者組件的代碼訪問你的代買塊碾盟!這將可以實現(xiàn)隱藏代碼的實現(xiàn)過程并對外提供特殊的接口供其訪問和使用!
組件和源文件
Swift中的訪問控制基于兩個概念:組件棚辽、源文件!
- 組件:為一個代碼分布獨立單元巷疼,例如:一個Framework或者一個App Bundle都可以稱為組件晚胡!在Swift中使用其他的組件需要使用
import
關(guān)鍵字灵奖。 - 源文件:在組件內(nèi)的單獨的源代碼文件,通俗講就是我們寫代碼的.swift文件估盘,夠明白吧O(∩_∩)O哈哈~
訪問等級
Swift提供了5種不同的訪問等級供開發(fā)者使用瓷患!
- Open和Public
可以被定義組件內(nèi)的任何源文件訪問,并且當(dāng)前組件為引入的其他組件也是可以的遣妥!兩者有什么不同擅编,后面會介紹! - Internal
可以被定義組件內(nèi)的任何源文件訪問箫踩,但是其他組件不能訪問爱态! - FilePrivate
只能被當(dāng)前Swift源文件訪問 - Private
只能在當(dāng)前定義的類內(nèi)訪問
Open訪問等級為最高級的訪問等級(約束最小)
Private訪問等級為最低級的訪問等級(約束最大)
Open訪問僅僅應(yīng)用于類和類的成員變量,其與Public訪問的區(qū)別存在以下幾點:
- Public修飾的類境钟,只能在組件內(nèi)被繼承锦担!
- Public修飾的類成員,只能在組件內(nèi)被子類重載慨削!
- Open修飾的類洞渔,可以在組件內(nèi)被繼承,也可以在被引入當(dāng)前組件的組件內(nèi)繼承缚态!
- Open修飾的類成員磁椒,可以在組件內(nèi)被子類重載,也可以在被引入當(dāng)前組件的組件內(nèi)被子類重載玫芦!
Zeb