物件導向是封裝、繼承、多型三項的有機組成。
通過採取封裝特性,我們可以把一組相關聯的資料和函式圈起來,使圈外面的**只能看見部分函式,資料則完全不可見。譬如,在實際應用中,類中的公共函式和私有成員變數就是這樣。
繼承的主要作用是讓我們可以在某個作用域內對外部定義的某一組變數與函式進行覆蓋。
多型是函式指標的一種運用。
綜上,我們可知,物件導向程式設計其實是對程式間接控制的轉移進行了約束。
物件導向程式設計到底是什麼?業界在這個問題上存在著很多不同的說法和意見。然而對乙個軟體架構師來說,其含義應該是非常明確的:物件導向程式設計就是以多型為手段對源**中的依賴關係進行控制的能力,這種能力讓軟體架構師可以構建出某種外掛程式式架構,讓高層策略性元件與底層實現元件相分離,底層元件可以被編譯成外掛程式,實現獨立於高層元件的開發和部署。
《架構整潔之道》之函式式程式設計
函式式程式語言中的變數是不可變的。為什麼不可變性是軟體架構設計需要考慮的重點呢?為什麼軟體架構師要操心變數的可變性呢?答案顯而易見 所有的競爭問題 死鎖問題 併發更新問題都是由可變變數導致的。如果變數永遠不會被更改,那就不可能產生競爭或者併發更新問題。如果鎖狀態是不可變的,那就永遠不會產生死鎖問題。...
《架構整潔之道》之程式設計正規化總覽
結構化程式設計是第乙個普遍被採用的程式設計正規化 但是不是第乙個被提出的 由edsger wybe dijkstra於1968年最先提出。與此同時,dijkstra還論證了使用goto這樣的無限制跳轉語句將會損害程式的整體結構。結構化程式設計正規化歸納 結構化程式設計對程式控制權的直接轉移進行了限制...
系統架構之物件導向
耦合 模組之間聯絡的緊密程度。內聚 模組內部各元素之間聯絡的緊密程度。繼承與泛化 繼承 特殊類 子類 與一般類 父類 的關係。泛化 一般類與特殊類的關係,一對多。多型與過載 多型性是指一般類中定義的屬性或服務被特殊類繼承後,可以具有不同的資料型別或表現出不同的行為,通常是使用過載 專用多型 和改寫 ...