今天來點干貨,今天由于某些緣由沒有看哪一個關于1些面試的題,反而看了1點關于后幾天要做的設計模式的東西,大神神馬的可以繞到了,我就是簡單說說我的見解,畢竟關于這方面我愈來愈覺得自己還是遠遠不夠的。
今天我們說3個原則和兩個模式,單1職責原則,開放-封閉原則,依賴倒轉原則,說了個簡單的設計模式,分別是簡單工廠模式,和工廠方法模式。
我們1個1個的來,先說單1職責原則。就1個類而言,應當唯一1個引發它變化的緣由,在我之前寫java的程序的時候,對這些東西感觸還是挺深的,單1職責就是說我們要把1個類設計的盡可能簡單,讓他的職責很專注,很單1,不是說把很多東西揉在1起,1個類如果職責過量,后續一定會引發代碼的壞味道。
開放-封閉原則OCP(The open-close principle),開放-封閉原則是,軟件在迭代開發的時候,免不了會有1些新的需求,我們寫的程序在新的需求來的時候,是增加類,增加方法來適應新的需求,而不是1味的修改原來的代碼對擴大是開放的,對更改是封閉的,對程序的改動是增加新代碼進行的,而不是更改現有代碼。更改現有的代碼,會影響軟件的穩定性,也其實不利于軟件的久長發展。
依賴倒轉原則,高層模塊不應當依賴于底層模塊,兩個都依賴于抽象
抽象不應當依賴細節,細節應當依賴于抽象
說白了就是針對接口編程,而不是針對實現編程
3個原則主要就是在軟件開發進程中的原則,1般情況下如果軟件設計公道,是不背背這3個原則的。
下面我就說說兩個比較簡單的設計模式吧,先說簡單工廠。簡單工廠就是下面的這個圖。
這個是我從書上截下來的圖,這個大概意思就是說1個簡簡單單的數學運算的設計,這個設計的好處就是,客戶類和工廠類分開,消費者任什么時候候需要某種產品,只需向工廠要求便可,消費者無需修改就能夠接納新產品,缺點就是簡單工廠在增加運算的類的時候,要修改簡單工廠內部代碼,這也就背背了開放-封閉原則。
所以比簡單工廠好1點的工廠方法模式就來了,以下圖
這個就是工廠方法模式了,工廠方法模式要比簡單工廠模式好1點的就是對工廠也一樣的進行了抽象,我們可以造很多個工廠來創建消費者,工廠方法模式修正了簡單工廠模式中不遵照開放-封閉原則。工廠方法模式把判斷移到了客戶端去實現,如果想添加新功能就不用修改原來的類,直接修改客戶端就好了。之前的簡單工廠是只有1個工廠,當我們修改的時候需要修改這個類,而現在改成了需要修改客戶端。
其實今天也只是說了個大概,具體的代碼,大家可以去看大話設計模式的那本書,感覺那個講的還是不錯的,今天隨著他,寫了兩個模式,感覺蠻好的。
學習設計模式1定要有項目基礎,沒有項目基礎你看這些模式1點感覺都沒有,只有有了1定的項目基礎,你才知道些項目的時候為何會寫不下去,為何會不知道怎樣寫,只有遇到了那個瓶頸回來看才真的會大徹大悟,所以大家1起加油吧。
今天實在是太晚了,我去刷牙,然后睡覺了,各位看官早點睡,晚安~