設計模式思維智慧型的結晶(一) 導論

2021-09-25 07:25:00 字數 1185 閱讀 2910

一、什麼是設計模式

這裡引用克里斯多福·亞歷山卓( christopher alexander)的一句話:

「每乙個模式描述了乙個在我們周圍不斷重**生的問題,以及該問題的解決方案的核心。

這樣,你就能一次又一次地使用該方案而不必做重複勞動「

雖然克里斯多福·亞歷山卓是乙個建築領域的專家,但這句話也能很完美的闡釋設計模式的特點:解決重複問題、減少重複勞動,是一種解決方案的抽象,處理問題的模型。

設計模式的本質:通過分工協作實現復用性。

二、學習的要領

設計模式不是**的精髓,而已一種思維的體現,學習過程中我們不能也不應該去糾結在**的實現上,需要理解每一種的設計模式的思維模式,從更高的維度,更接近於生活的角度理解它們。

「舉一而三反,聞一而知十,乃學者用功之深,窮理之熟,然後能融會貫通,以至於此。」
理解其本質之後,再繁瑣的場景我們都能選擇出恰當的設計模式去解決,再複雜**我們也可以一眼看出編寫思路。

三、重新認識物件導向

從**的角度上理解物件導向,封裝、繼承、多型耳熟能詳,今天我們要站在更高的維度去理解物件導向的好處。

理解隔離變化:

各司其職

四、物件導向設計原則

1、依賴倒置原則(dip)

2、開放封閉原則(ocp)

3、單一職責原則(srp)

4、liskov替換原則(lsp、裡式代替)

5、介面隔離原則(isp)

6、優先使用物件組合,而不是類繼承(crp、 合成復用原則)

7、封裝變化點

8、針對介面程式設計,而不是針對實現程式設計

五、智慧型的結晶源於生活

不難發現設計模式某種意義上,就是統一標準後、將各個分工協作的部門進行抽象,實現高度統一高度可靠的模型完成復用。結合生活和歷史,來聊聊這樣做的好處。

1、秦國的強大不僅是政治源於,還有更多的技術原因。我們聚焦於一點,考古的發現和史書的記載,秦國的兵器不論東南西北,出土地點都有統一標準,包括劍、戈、弩、箭,而其他的六國則不是。這樣帶來的好處所有的士兵的訓練方式都有一樣的,所有的箭適配所有的弩,戰場上劍砍斷了撿起一把不用適應直接可以使用。秦國做的事情便是把**的「介面」統一了,各種**都被抽象成了物件和標準。不僅是在**方面,秦國更是統一了錢幣,統一了度量衡。

2、活字印刷,統一了每乙個字模板的大小,從而實現靈活的組合。非常典型的松耦合設計。

規劃系統 智慧型水務規劃系統思維的設計思考

近年來,智慧型水務資訊化專案建設如火如荼,大家對智慧型水務的理解各有見解。有人認為智慧型水務只是乙個概念,比較抽象,難以落地。有人認為目前較多智慧型化專案其實是資訊化系統的延伸概念,並沒有真正意義上的達到智慧型 智慧型的功能和狀態。因此,很多水務企業為了將建設內容與目標願景結合,希望更切合水務企業實...

一 設計模式的介紹

軟體設計模式 design pattern 又稱設計模式,是一套被反覆使用 多數人知曉的 經過分類編目的 設計經驗的總結。使用設計模式是為了可重用 讓 更容易被他人理解 保證 可靠性 程式的重用性。編寫軟體過程中,程式設計師會面臨很多問題,特別是當軟體專案特別大的時候,比如耦合性,內聚以及可維護,可...

一 設計模式的原則

針對乙個複雜問題,一般有兩種解決方法 分解 使用if else分別處理 針對多種情況分別討論 switch case 抽象 使用多型統一處理 通過物件導向多型特性,不同的情況使用同一的介面處理。設計原則 依賴倒置原則 高層 穩定 不應依賴於低層 變化 而應該依賴於抽象 某個主類不應依賴於細分類 單一...