設計模式入門

2022-08-14 03:33:09 字數 1230 閱讀 5671

策略模式-strategy

不同鴨子型別的飛行行為、鳴叫行為,會有不同的實現,可獨立出來,和其他區分--區分變化的和不會變化的部分。

鴨子子類使用介面表示行為,所以具體的實現不會綁死在鴨子的子類中,且可以在執行時改變行為。

『有乙個』比『是乙個』更好,鴨子的具體行為可以委託給具體的行為類去處理,使用組合建立的系統有很大的彈性,不僅可以將演算法簇封裝成類,更可以在執行時改變行為。

觀察者模式-observer

主題和觀察者之間松耦合,但依然可以互動,但不太清楚彼此的細節;主題只知道觀察者實現了某個介面(observer介面),但不知道其具體的實現,主題依賴的是observer介面實現的物件列表,所以可以隨時新增觀察者,執行時也可以隨意替換觀察者;

1. mod1:觀察者模式中,會改變的是主題的狀態,以及觀察者的數目和型別。用這個模式,你可以改變依賴於主題狀態的物件,卻不必改變主題。這就叫提前規劃;

2. mod2:主題與觀察者都使用介面:觀察者利用主題的介面向主題註冊,而主題利用觀察者介面通知觀察者。這樣可以讓他們之間運作正常,又同時具有松耦合的特點;

3. mod3:觀察者模式利用『組合』將許多觀察者組合進主題中。物件間的這種關係不是通過繼承產生的,而是在執行時利用組合的方式而產生的;

裝飾者模式-decorator

動態地組合物件:利用此技巧,把多個新職責,甚至設計超類時還沒想到的職責加在物件上,而且不用修改原來**。

裝飾者、被裝飾者物件有相同的超型別;

可以用乙個或多個裝飾者包裝乙個物件;

擁有相同超型別,所以任何需要原始(被包裝的)的場合,可以用裝飾過的物件代替它;

裝飾者可以在所委託被裝飾者的行為之前or之後加上自己的行為,以達到特定目的;

物件可以在任何時候被裝飾,即可以在執行時動態的、不限量的使用需要的裝飾者來裝飾物件;

設計模式入門

最近一直在學習設計模式,打算把我所學習的東西在部落格裡面記錄下來。我學習設計模式所用的書是o relly出品的 head first設計模式 這個系列還是十分出名的。其實很多開發者從始至終並未系統的學習過設計模式,而是從一次次的程式設計中和前人的教誨中領悟得來。但是其中走過的彎路,吃過的苦頭,只有他...

設計模式入門

一 設計模式的分類 設計模式在大體上可以分為三類 1.建立型模式 通常和物件的建立有關,涉及到物件例項化的方式。2.結構型模式 描述的是如何組合類和物件來獲取更大的結構。3.行為型模式 用來對類或物件怎樣互動和怎樣分配職責進行描述。二 建立型模式主要包含五種設計模式 1.工廠方法模式 2.抽象工廠模...

設計模式入門 模板模式

1.什麼是模板模式?模板模式又叫模板方法模式,在乙個方法中定義乙個演算法的骨架,而將一些步驟延遲到子類中。模板方法使得子類可以在不改變演算法結構的情冴下,重新定義演算法中的某些步驟。2.模板方法的類結構?圖模板方法模式包含抽象類和具體實現類兩個角色 1 abstractclass 抽象類 在抽象類中...