JAVA設計模式的六大原則

開閉原則(總則)

規定“軟件中的對象(類,模塊,函數等等)應該對於擴展是開放的,但是對於修改是封閉的”,這意味着一個實體是允許在不改變它的源代碼的前提下變更它的行爲。

我的理解:只增不改。無論是類、方法,都儘可能的增加新的,不改變舊的。

單一職責原則

它規定一個類應該只有一個發生變化的原因。
謂職責是指類變化的原因。如果一個類有多於一個的動機被改變,那麼這個類就具有多於一個的職責。而單一職責原則就是指一個類或者模塊應該有且只有一個改變的原因。

我的理解:其實就是解耦合,不是有一句話叫能力越大責任越大嗎?當一個類具有的職責越多,那麼要改變他的原因也會增加。所以規範讓一個類只具有一個發生變化的原因,這樣能夠儘可能的降低耦合度

里氏替換原則(Liskov Substitution Principle)

主張使用“抽象(Abstraction)”和“多態(Polymorphism)”將設計中的靜態結構改爲動態結構,維持設計的封閉性。
“抽象”是語言提供的功能。
“多態”由繼承語義實現。
任何基類可以出現的地方,子類一定可以出現。

我的理解:子類既然是繼承着基類,那麼子類一定是具有基類的全部特性的

依賴倒轉原則(Dependence Inversion Principle)

程序要依賴於抽象接口,不要依賴於具體實現。簡單的說就是要求對抽象進行編程,不要對實現進行編程,這樣就降低了客戶與實現模塊間的耦合。
A.高層次的模塊不應該依賴於低層次的模塊,他們都應該依賴於抽象。
B.抽象不應該依賴於具體,具體應該依賴於抽象。

我的理解:通俗的講就是我們都依賴於我們的共性,而不應該是我們的共性依賴與我們。

接口隔離原則(Interface Segregation Principle)

客戶端不應該依賴它不需要的接口。一個類對另一個類的依賴應該建立在最小的接口上。
使用多個專門的接口比使用單一的總接口要好。
一個接口代表一個角色,不應當將不同的角色都交給一個接口。沒有關係的接口合併在一起,形成一個臃腫的大接口,這是對角色和接口的污染。

我的理解:各盡其責,不要把一個學數學的老師安排去教體育。

合成複用原則(Composite Reuse Principle)

要求在軟件複用時,要儘量先使用組合或者聚合等關聯關係來實現,其次才考慮使用繼承關係來實現。

我的理解:繼承的話會讓耦合性增加,父類每添加一個方法,子類都會對應增加。所以能夠通過組合的方式來實現的方法就儘可能的組合。就好比組合是一個 2+2+2的消耗,繼承則可能是 2×2 ×2的消耗。

迪米特法則(Demeter Principle)

一個類對自己依賴的類知道的越少越好。


在這裏插入圖片描述

發佈了131 篇原創文章 · 獲贊 144 · 訪問量 31萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章