面向介面程式設計(自我理解 有錯誤的地方一起理解學習)

2021-08-21 04:16:33 字數 386 閱讀 2107

1.     為了解耦

什麼是解耦?

打個比方華碩電腦的插頭只能用華碩的滑鼠,鍵盤等等,那麼這就說明他是高度耦合的,因為離開了華碩的滑鼠,鍵盤,他就無法使用了。

在程式中也是這樣如果你在乙個類中定義了乙個具體的物件那麼就說明這個程式是高度耦合的,因為她只能使用這個物件完成特定的功能。

然而介面程式設計就可以辦到程式的解耦

試想一下如果華碩的電腦只是制定了一套標準,也就是提供乙個通用的介面,這個介面既能用華碩的滑鼠,鍵盤也能用聯想的滑鼠鍵盤,那麼是否就降低了耦合性了,反應到程式中就是在類中定義乙個介面物件,具體的實現看使用者自己決定,那麼程式的耦合度就大大的降低。

而在spring中的面向介面程式設計正是如此,首先spring容器通過控制反轉,具體的類的建立的過程由容器來管理,

通過面向介面程式設計對控制反轉IOC的理解

ioc,把控制反轉到業務端,這句話沒什麼問題,在springboot框架裡,物件的管理是通過spring ioc來實現的,而開發人員的開發原則裡總是說 面向介面程式設計 而為什麼要面向介面卻沒幾個人能說出來,今天在寫乙個基於redis的手動分布鎖時,對這個面向介面和控制反轉又有了乙個體會。當你為開發...

物件導向程式設計的理解

面向著具體的每乙個步驟和過程,把每乙個步驟和過程完成,然後由這些功能方法相互呼叫,完成需求。當需求單一,或者簡單時,我們一步一步去操作沒問題,並且效率也挺高。可隨著需求的更改,功能的增多,發現需要面對每乙個步驟很麻煩了,這時就開始思索,能不能把這些步驟和功能在進行封裝,封裝時根據不同的功能,進行不同...

面向介面程式設計的設計模式

為了避免上面的問題發生,工廠模式建議讓computer類組合乙個output型別的物件,將computer類與printer類完全分離。computer物件實際組合的是printer物件還是betterprinter物件,對computer而言完全透明。當printer物件切換到betterprin...