在物件導向的世界就是大家所熟知的封裝、繼承、多型,這三個組成物件導向的世界,
而這三個是有順序性有封裝才會有繼承彆且有多型,其實這是個很重要的概念,這個概念傳達
了並不是獨立,想我當初在學時就認為三個是獨立並無關連,獨立出來思考但這是錯造成
很多觀念無法銜接,首先先看封裝他是撰寫物件的一開始幾乎都從封裝開始,而甚麼是封裝?
就是將系統內程式模組之間關聯性降到最低,程式部會改一下鳩牽一髮動全身,還記得物件
到項1的文章提到把BUG修好而原本好的功能卻壞了,其實這就是封裝沒有做好,系統內的
程式模組彼此互相依賴的程度過高。
所以從上面可以得知封裝對於系統的穩定度及後續的維護是如此的重要,
而我們在定義更清楚一點甚麼是封裝,其實˙將系統依專案的需求或客戶的需求,將程式
切割多個模組(該模組處理相同的作業且相關資料的產出,可歸類為模組),而在物件導向
的世界不叫模組而叫class,換言之class就是封裝的結果,其實就怎麼簡單。
以前在學時被封裝這個名詞搞得七葷八素,被一些電腦書籍愈講愈模糊,而class長成如何ㄋ
從上至下為class名稱為AppliocationCase,至下為欄位和屬性(以此案例只有欄位沒有出現屬性)
最下為方法,其實這就是一個class也是封裝的結果,而在上面有提到每一個模組與模組要降低
每個模組的關聯性,又要如何設定每個Class的關聯性,就是能見度在上面的例子有看到+號和-
號就是能見度+號為public所有程式都可存取,因此你的Class的欄位值可能有被其他的Class中的
方法修改造成原本好的功能修改後卻變成壞的,相對-號為private私有只有自己Class的類別可以
存取,當然若是能見度設的太緊在開發中是很痛苦的,若是能見度設的太鬆導致每個Class互相
依賴太高不好維護,所以Class能見度的設定沒有一定的標準,要依專案的需求仰賴系統分析
或PM,有些公司是程式設計師全包在分析時的決定。
上述就是封裝主要的功能及所呈現的方式,而在封裝再深究下去可以有欄位和屬性,一般通常
欄為我們都會社私有就是-號,所有的過程皆使用方法來存取,以達到資訊隱藏性及安全性。
沒有留言:
張貼留言