大話設計模式之面向設計的幾大原則讀後感

2022-08-26 03:12:10 字數 1500 閱讀 5545

引言:讓我們重溫經典,致敬經典

開放封閉原則:對擴充套件是開放的,對修改是關閉的

做到這個在剛開始的時候是不容易的,在剛開始是不會變化的,當發生變化的時候,我們應該建立抽象來隔離以後發生的同類變化。

舉個栗子來解讀上面這句話:

好比有個人,他剛開始會的技能只有唱歌,後來他又會了跳舞,再後來又會了寫bug再後來又會了。。。此時我們應該把這個技能抽象出來

**:

1

package

com.dzf.designtest;23

/**4* 5

* 開放封閉原則**演示6*

7* @author

dingzf

8* @date 2018/3/30

9* @time 23:34

10*/

11public

class

opencloseprinciple 24}

2526

/**27

* 剛開始類是這樣的,第一版**

28*/

29class

person36}

3738

/**39

* 第二版**,我們發現這個我們違反了開發封閉原則,我們就把變化的抽象出來

40*/

41class

person249}

5051

/**52

* 第三版

53*/

54class

person3

6061

public

void

setskill(skill skill)

6465

public

void

shwo()69}

70}71abstract

class

skill

74class skillimpl extends

skill

80 }

依賴倒置原則:高層模組不能依賴低層模組,兩個都應該依賴抽象,抽象不應該依賴細節,細節應該依賴抽象

解釋下,這個主要是為了降低耦合性,上面這句說我們可以用我們常用的service層和dao層來說明,高層不應該依賴第層,是說service層不應該依賴dao層,而都依賴介面,我們一般都會定義service層的介面和dao層的介面。抽象不應該依賴細節,細節應該依賴抽象,就是說要針對介面程式設計不要針對實現程式設計,好比我們service要呼叫dao層,我們要依賴的是dao層介面,而不是dao層的實現類,我們針對的是對介面,而不是針對細節,這樣做我們可以更好的擴充套件。

職責單一原則:說乙個類應該只有一種引起它變化的原因。從子面上理解,就是就專注幹一件事,其實這些都是為了低耦合的。

黎克特制替換原則:說子型別必須能夠替換掉他們的父型別。正是由於這個原則,才使得使用父型別的模組無需修改的情況下就可以擴充套件。不然還談什麼開放封閉啊,依賴倒置啊。這個是基礎。

大話設計模式之物件導向基礎

a.2 類與例項 物件是乙個自包含的實體,用一組可識別的特性和行為來標識。物件導向程式設計 object oriented programming 類就是具有相同的屬性和功能的物件的抽象的集合。例項,就是乙個真實的物件。例項化就是建立物件的過程,使用new關鍵字來建立。a.3 構造方法 構造方法,又...

設計模式幾大原則

談到設計模式,不能不說一下grasp 職責分配原則 這個比模式更重要.我將再後邊接著來分析.下面我來分析一下設計模式原則,以及在設計模式中的體現.主要參考 程杰 大話設計模組 這裡用dh代替 和justin tech 的部落格.一 設計模式的核心原則是 開 閉 原則 open closed prin...

設計模式幾大原則

談到設計模式,不能不說一下grasp 職責分配原則 這個比模式更重要.我將再後邊接著來分析.下面我來分析一下設計模式原則,以及在設計模式中的體現.主要參考 程杰 大話設計模組 這裡用dh代替 和justin tech 的部落格.一 設計模式的核心原則是 開 閉 原則 open closed prin...