設計模式的核心知識

2021-09-05 19:48:00 字數 1432 閱讀 4570

終於把

23種設計模式給整理完了,通通理解了一遍。雖然看得懂,能夠隨著裡面**和傳遞引數的方法繞來繞去,一層一層拔下去而不會「頭暈」,但離實際運用它們還是有很大的距離的。 這

23種設計模式涵蓋了所有軟體架構師和設計師前輩們的經驗和方法,將最常用的設計方法和模式都「抽取」出來成為精華的核心**,就像數學裡面的公式一樣,只要你設計模式會了,會應用了,那麼你離設計出沒有「臭蟲」和高效的**不遠了

~通過對這些模式的學習和研究,我發現它們還是有一些共同之處的,用到

oo裡面的三大核心自不必說,同時還很多次用到乙個地方:那就是當父類(通常為抽象類)物件

a引用子類物件

b的時候,然後用

a去呼叫父類中的方法時,這裡面有幾個地方要注意:當子類中從父類繼承而來的虛方法如果採用覆蓋(

new去修飾)方式時,實際執行的是父類的方法;如果採用重寫(

override

修飾)的方式時,則實際執行的是子類的方法。這個是設計模式的「心臟」,如果不能理解這個原則,則設計模式是看不下去的!同時它也是組建多型的必要核心。因為我們常常要利用抽象類去引用子類來實現多型。

說了這麼多理論,我們來舉個例子吧:

class

program }

public

abstract

classa

} class

b :a }

class

c : a }

執行的結果是:

呼叫b類中的方法!

呼叫a類中的方法!

從程式中一看就很明了了!

當然,這個這只是設計模式中的乙個小小的應用而已,其實傳參在設計模式中還是比較常見,平常的如

int和

string

型的作為引數比較常見,但在實際大型軟體運用中這遠遠不夠的,有時候乙個類,物件,屬型都可以作為引數來傳遞,這些往往比較複雜~~

設計模式中告訴我們主要一下幾點: 1

:不要重複設計。利用拷貝貼上那是低階程式設計師要幹的事,而且這樣做的壞處是當在很多地方重複設計時,如果需要修改重構,則工作量大得驚人,也容易出錯! 2

… 3:依賴倒轉原則。就是高層模組不要依賴底層模組,而是兩者都要依賴抽象;抽象不應該依賴細節,而細節應該依賴抽象。只要抽象和介面穩定,則更改任何乙個地方都不會對別的地方造成影響,同時這樣也能夠很好得復用。 4

:單一原則。當乙個類承擔過多的功能過多的設計的時候就等於把這些原則耦合在一起,乙個職責的變化可能會抑制這個類完成其他的職責,這種設計會導致脆弱的設計。 5

:開放封閉原則。對擴充套件開放,對修改封閉。設計軟體最好遵循

oo原則,做到少修改,多擴充套件。 6

:多層封裝。經典的三層結構告訴我們,把不同功能的層封裝起來,這樣結構很清晰和條理,易於維護,而且修改其中一層也不會給其他層帶來多少影響…

…… 總之一句話:我們設計的軟體要擴充套件性好,可復用,易於維護,靈活性好

……

設計模式的核心知識

終於把 23種設計模式給整理完了,通通理解了一遍。雖然看得懂,能夠隨著裡面 和傳遞引數的方法繞來繞去,一層一層拔下去而不會 頭暈 但離實際運用它們還是有很大的距離的。這23 種設計模式涵蓋了所有軟體架構師和設計師前輩們的經驗和方法,將最常用的設計方法和模式都 抽取 出來成為精華的核心 就像數學裡面的...

Web Service核心知識

xml,soap和wsdl就是構成webservice平台的三大技術。xml webservice採用http協議傳輸資料,採用xml格式封裝資料,即xml中說明呼叫遠端服務物件的哪個方法,傳遞的引數是什麼,以及服務物件的返回結果是什麼。xml是webservice平台中表示資料的格式。除了易於建立...

Hadoop核心知識

一 hadoop核心 hdfs hadoop distributed file system 分布式檔案系統 用於海量資料的儲存 yarn yet another resource negotiator 資源管理排程系統,用於資源管理排程 map reduce 分布式運算框架,用於海量資料的分析 二...