設計模式分類與學習方法

2021-10-12 12:24:42 字數 1186 閱讀 4090

從目的來看:

從範圍看:

元件協作模式通過 晚期繫結,來實現框架與應用程式之間的松耦合,是二者之間協作時常有的。

包含的設計模式:

在軟體元件的設計中,如果責任劃分的不清晰,使用繼承得到的結果往往是隨著需求的變化,子類急劇膨脹,同時充斥著重複的**,這時候的關鍵是劃分責任。

通過「物件建立」模式繞開new,來避免物件建立(new)過程中導致的緊耦合(依賴具體類),從而支援物件建立的穩定。它是介面抽象之後的第一步工作。

物件導向很好地解決了「抽象」的問題,但是必不可免的要付出一定的代價。對於通常情況來講,物件導向的成本都可以忽略不計。但是某些情況,物件導向所帶來的成本必須謹慎處理。

在元件構建過程中,某些介面之間直接的依賴常常會帶來很大問題、甚至根本無法實現。採用新增一層間接(穩定)介面,來隔離本來互相緊密關聯的介面是一種常見的解決方案。

在元件構建過程中,某些物件的狀態經常面臨變化,如何對這些變化進行有效的管理?同時又維持高層模組的穩定?「狀態變化」模式為這一問題提供了一種解決方案。

常常有一些元件在內部具有特定的資料結構,如果讓客戶程式依賴這些特定的資料結構,將極大地破壞元件的復用。這時候,將這些特定資料結構封裝在內部,在外部提供統一的介面,來實現與特定資料結構無關的訪問,是一種行之有效的解決方案。

在元件的構建過程中,元件行為的變化經常導致元件本身劇烈的變化。「行為變化」模式將元件的行為和元件本身進行解耦,從而支援元件行為的變化,實現兩者之間的松耦合。

在特定領域中,某些變化雖然頻繁,但可以抽象為某種規則。時候,結合特定領域,將問題抽象為語法規則,從而給出該領域下的一般性解決方案。

物件導向設計模式是「好的物件導向設計」,所謂「好的物件導向設計」指是那些可以滿足「應對變化」提供復用的設計。

現代軟體設計的特徵是「需求的頻繁變化」。設計模式的要點是「尋求變化點」,然後在變化點處應用設計模式,從而來更好的應對需要的變化。「什麼時候、什麼地點應用設計模式」比「理解設計模式結構本身」更為重要。

設計模式的應用不宜先入為主,一上來就使用設計模式是對設計模式的最大誤用。沒有一步到位的設計模式。敏捷軟體開發實踐倡導的「重構到模式」是目前普遍公認的最好的使用設計模式的方法。

靜態(具體類) --> 動態(介面或者抽象類)

早繫結 --> 晚繫結

繼承 --> 組合

編譯時依賴 --> 執行時依賴

緊耦合 --> 松耦合

其實只是從不同的角度闡述多型。

設計模式學習方法

一 如何才能真正理解和掌握設計模式呢?1 我覺得先得約定一下,到底什麼樣的標準才算是真正理解和掌握設計模式,當然這個沒有國際標準,只能一家之言了.我認為,真正理解和掌握設計模式的標準就是 深入領會和掌握模式的設計思想和設計手法的精髓,能夠自如的把設計模式應用到實際專案中去,而且不會拘泥於模式的實現形...

強化學習方法分類

model based 先理解真實世界是怎樣的,並建立乙個模型來模擬現實世界的反饋,通過想象來預判新下來將要發生的所有情況,然後選擇這些想象情況中最好的那種,並依據這種情況來採取下一步的策略。model free 不依賴環境,不嘗試去理解環境,agent會根據現實環境的反饋採取下一步的動作,一步一步...

戶外與學習方法

1 抗生素類 氟哌酸 呼吸道感染 頭孢 消炎 黃連素 腸道感染 黃連上清片 清熱解毒 咽炎 牙痛 通便 2 抗病毒 板蘭根 沖劑或片劑 3 呼吸系統 速效傷風膠囊 vc銀翹片 六神丸 清腫解毒 草珊瑚含片 4 消化系統 雷尼替丁或西咪替丁 胃潰瘍 胃復安 嘔吐 胃脹 5 防暈車 乘暈寧 6 抗過敏 ...