8 物件導向 抽象特性 面向介面而非實現程式設計

2021-10-01 16:43:42 字數 641 閱讀 5862

越抽象、越頂層、越脫離具體某一實現的設計,越能提高**的靈活性,越能應對未來的需求變化。好的**設計,不僅能應對當下的需求,而且在將來需求發生變化的時候,仍然能夠在不破壞原有**設計的情況下靈活應對。

基於介面而非實現(又名基於抽象而非實現)程式設計就是一種非常有效的提高**質量的手段,上游系統面向介面而非程式設計,不依賴不穩定的實現細節,這樣當實現發生變化的時候,上游系統的**不需要做改動,以此來降低耦合性,提公升擴充套件性。不過這條原則也經常被過度使用。

從本質上來看,介面就是一組協議或約定,是功能提供者提供給使用者的乙個功能列表。落實到具體的編碼,「基於介面而非實現程式設計」這條原則中的介面則可以理解為程式語言中的介面或抽象類。

做設計的時候要有介面意識。除了程式設計開發,在架構設計、系統設計上也要注意基於介面而非實現程式設計原則,如服務端與客戶端的api設計。

1、為實現類定義抽象的介面,介面中的函式命名要通用,不能暴露任何實現細節。

2、先設計介面,再實現。與特定實現有關的方法不要定義介面,如uoloadtoaliyun。

3、封裝具體的實現細節。

這條原則的初衷是將介面和實現相分離,封裝不穩定的實現,暴露穩定的介面。

如果在我們的業務場景中,某個功能只有一種實現方式,未來也不可能被其他實現方式替換,那我們就沒有必要為其設計介面,也沒有必要基於介面程式設計。

物件導向(繼承 抽象 介面)

一 繼承的好處 1.提高 的復用性。2.讓類與類之間產生了關係,有了這個關係,才有了多型的特性。二 如何使用乙個繼承體系中的功能那?想要使用體系,先查閱體系最父類的描述,因為最父類中定義的是該體系中的共性功能。通過了解共性功能,就可以知道該體系的基本功能。那麼這個體系已經可以基本使用了。三 那麼在具...

java 物件導向 介面 抽象

乙個物件例項化過程 person p new person 1,jvm會讀取指定的路徑下的person.class檔案,並載入進記憶體,並會先載入person的父類 如果有直接的父類的情況下 2,在堆記憶體中的開闢空間,分配位址。3,並在物件空間中,對物件中的屬性進行預設初始化。4,呼叫對應的建構函...

物件導向 抽象

物件導向分析與設計的主要任務是,找出類和物件,構建物件模型。物件模型的主要要素 抽象 封裝 模組化與層次結構。物件模型的次要要素 型別 併發 持久。抽象描述了乙個物件的基本特徵,可以將這個物件與所有其他型別的物件區分開來,因此提供了清晰定義的概念邊界,它與觀察者的角度有關。抽象關注乙個物件的外部檢視...