面向对象软件开发代码结构(2)
使用封裝降低信息的復雜度
封裝是面向對象編程的核心思想之一。
封裝的過程,是將大量的信息(過程、數據),凝縮成滿足特定需求的接口的過程。
從數量上來說,好的封裝必然是將大量的、與業務交互無關的實現細節隱藏起來,只暴露出少量的交互接口。如果封裝后比沒有封裝情況下信息增加了,那這種情況可以考慮不做封裝或輕量級封裝,當然這需要結合以后是否需要擴展來考慮。
當然與封裝相反的是,信息體的訪問完全可以在不封裝的條件下訪問。這種方式存在的問題是,如果訪問的代碼存在于多個地方的話,就會產生重復。重復的代碼是對修改不友好的。因為一旦需要修改訪問代碼,就需要改動多個地方,會產生大量的工作量。
另外,封裝后的接口相對于原有的信息體而言,一般信息量是大幅度減少的,只需要幾個函數和較少的參數和返回值即可訪問。這對使用此信息體的開發人員來說,只需要掌握必要接口的使用方法即可,無需每次使用此功能時,都重新回顧此信息體的內部運作原理。
由上可以看出,封裝的作用有:
封裝形式
函數是最基本的封裝形式。
面向對象編程中,類是新的一種封裝形式。
庫/模塊是更高級別的封裝形式。
大到系統軟件、工具軟件也是一種信息體的封裝形式。
另一種理解方式
既然封裝是一種由多到少的過程,可以將一次封裝理解為建立樹的過程。
實際項目中,一個軟件致力于解決某一領域的某一類問題。在分析需求時,需要將需求逐層分解,大問題化成小問題,不相關的問題之間相互獨立,這是一種和封裝相反的過程。但是其分解后的結果可以為封裝提供依據。
封裝相關的問題
封裝要側重對需求不易改變的部分進行。如果封裝的部分需求易變,那么以后免不了要做出修改,而且修改的內容可能很多,這就導致以前的封裝工作白費。在分析需求的基礎上,一種可行的方法是對需求易變的部分進行相對寬松的、輕量級的封裝。
封裝范圍問題。封裝的范圍要盡量小,要對具有高度關聯的信息進行封裝,實現高內聚。
減少嵌套。嵌套會增加耦合性,并導致訪問路徑變長。
未完待續
總結
以上是生活随笔為你收集整理的面向对象软件开发代码结构(2)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 日本首次发现忍术秘籍:记载大量忍者绝顶技
- 下一篇: “史诗级”大发现:车祸前1秒特斯拉自驾系