物件導向設計模式概述

2021-08-15 10:17:29 字數 1088 閱讀 6446

簡單的說是相對與面向過程來說的,就是將資料與方法封裝在一起,作為物件。然後物件自己去實現具體細節。

就是指在程式設計時,將程式的內部細節(屬性,方法)隱藏起來,只公開介面,使之成為乙個抽象的整體,即類。其隱藏和公開的動作通過訪問控制關鍵字來控制。物件導向計算始於這個基本概念,即現實世界可以被描繪成一系列完全自治、封裝的物件,這些物件通過乙個受保護的介面被訪問。

優點:

所謂繼承,就是在乙個已有的類的基礎上建立乙個新類,這個新類獲得了已有類的屬性和方法,並且可以在新類中增加新的資料和方法,或者修改已有類的資料和方法。繼承是指類的層次模型,並且允許和鼓勵類的重用,它提供了一種明確表述共性的方法。在設計時,繼承更注重的「是乙個」的關係,比如說:父類-人,子類-男人。可以說男人是乙個人。

優點:

缺點:

組合用於表示類的「整體/部分」關係。例如主機、顯示器、鍵盤、滑鼠組合成一台計算機。

優點:

為了組合時可以使用不同的物件,必須小心的定義介面

選用繼承還是組合時,一般情況下先考慮組合,後考慮繼承。

因為繼承本身引入了基類與派生類的強耦合,一旦基類改變了,所有的派生類都必須重新編譯。組合一般情況下更加靈活。 我們可以在類中定義乙個物件指標,在執行是改變這個指標所指的物件,動態改變程式的行為。

當下列的所有標準被滿足時,方可使用繼承:

子類表達了「是乙個…的特殊型別」,而非「是乙個由…所扮演的角色」。

子類的乙個例項永遠不需要被轉化為其它類的乙個物件。 ( 因為單一繼承的關係)

子類是對其父類的職責進行擴充套件,而非重寫或廢除(nullify)。 (這樣父類變化了,子類就不一定需要變化)

子類沒有對那些僅作為乙個工具類 (utility class)的功能進行擴充套件。

介面的多種不同實現方式即為多型。也就是說,同一操作作用於相同介面的不同物件上,可以有不同的解釋,發生不同的動作,產生不同的結果。這個特性具體體現在方法的過載與重寫上。多型使得程式有著良好的靈活性,擴充套件性。

應用程式不必為每乙個派生類編寫功能呼叫,只需要對抽象基類進行處理即可。大大提高程式的可復用性。//繼承

派生類的功能可以被基類的方法或引用變數所呼叫,這叫向後相容,可以提高可擴充性和可維護性。 //多型的真正作用

設計模式 設計模式概述 物件導向基礎

模式名稱 pattern name 助記名,如抽象工廠模式等 問題 problem 描述了應該在何時使用模式 解決方案 solution 效果 consequences 物件導向程式設計由物件組成,物件包括資料和對資料進行操作的過程,過程通常稱為方法或操作。物件在收到客戶的請求 或訊息 後,執行相應...

設計模式 物件導向的設計原則概述

對於物件導向軟體系統的設計而言,在支援可維護性的同時,提高系統的可復用性是乙個至關重要的問題,如何同時提高乙個軟體系統的可維護性和可復用性是物件導向設計需要解決的核心問題之一。在物件導向設計中,可維護性的復用是以設計原則為基礎的。每乙個原則都蘊含一些物件導向設計的思想,可以從不同的角度提公升乙個軟體...

物件導向設計原則概述

對於物件導向軟體系統的設計而言,在支援可維護性的同時,提高系統的可復用性是乙個至關重要的問題,如何同時提高乙個軟體系統的可維護性和可復用性是物件導向設計需要解決的核心問題之一。在物件導向設計中,可維護性的復用是以設計原則為基礎的。每乙個原則都蘊含一些物件導向設計的思想,可以從不同的角度提公升乙個軟體...