日常生活中可以看到很多的汽車,汽車包括車輪、發(fā)動機、車架等零部件?梢栽谲嚰苌习惭b車輪,然后安裝發(fā)動機,最后安裝其他零件,刷漆。就形成了汽車。這個過程,是把各種零件放到車架上的過程。但思考一下,對于開車的人,需要關注車的內(nèi)部結構嗎?答案顯然是否定的。汽車對外提供了方向盤、油門等去調(diào)用內(nèi)部結構從而進行行駛。由這個例子可以總結出,汽車就是各種零件經(jīng)過封裝得到的產(chǎn)物,同時提供給駕駛人操控汽車需要的接口設備。這就是生活中的封裝。
我們可以看到生活中的封裝有很多好處。具體有如下的幾條好處:
①隱藏了實現(xiàn)細節(jié),在使用時沒必要關注具體實現(xiàn)。
②安全性好,內(nèi)部細節(jié)隱藏了,就不能隨意破壞。
③對外提供接口方便使用。
④可維護性好,方便修改實現(xiàn),修改完成后,對外接口不變,對用戶使用無影響。
⑤方便重用,任何一個會開車的人都可以駕駛汽車,只要對外的接口相同就行了。
總之,封裝就是將抽象得到的屬性和方法形成“類”,并將類內(nèi)部信息進行隱藏,對外公開接口的機制。封裝限制從類外訪問,從而提升代碼安全性和可維護性。
封裝的內(nèi)涵是把抽象得到的屬性和方法進行了封裝,對于方法,隱藏了具體的實現(xiàn),提供了方法名供使用者調(diào)用。對于成員變量也進行隱藏,通過方法對外提供訪問接口。通過封裝,限制了直接訪問成員變量,通過方法,增加驗證邏輯,提高了安全性和可維護性。
封裝的外延是按照內(nèi)聚性、一致性、封裝性、清晰性、完整性進行類的封裝。
內(nèi)聚性就是類應該描述一個單一的實體。例如,學生姓名和教師所帶班級不是單一實體的屬性,不能組合在一個類中。
一致性就是類、成員變量、方法名要有意義,并且順序是成員變量、構造方法、普通方法。
封裝性就是類中成員變量是私有屬性,通過getter/setter訪問。
清晰性是指類的結構應該是易于解釋和理解的。
完整性是需要充分考慮多種不同用戶設計,應該能通過屬性和方法提供多種方案以適應用戶不同需求。例如,字符串中有很多方法,同時這些方法可以組合完成各種任務。
>>本文地址:http://m.hqfphsz.com/zhuanye/2020/48444.html
聲明:本站稿件版權均屬中公教育優(yōu)就業(yè)所有,未經(jīng)許可不得擅自轉載。
1 您的年齡
2 您的學歷
3 您更想做哪個方向的工作?