設計模式讀書筆記與總結系列文章
相關推薦
設計模式讀書筆記與總結系列文章
這學期開始學習設計模式了,借了一本馬士兵推薦的《JAVA與模式》,很厚,現在還在看。開始的時候,只是寫一些讀書筆記,只給自己看,文章的質量很低,後來我們老師和我們共享了CSDN訪談劉偉的一個文件,看了一下劉偉是怎麼談如何學習設計模式的,說是學設計模式,要知道設計模式的意圖是什麼,它要解決一個什麼問題,什麼時候
【大話設計模式讀書筆記——開閉原則】
等等 使用方式 價值 log 變更 重用 中間 多種實現 過程 開閉原則 在面向對象編程領域中,開閉原則規定“軟件中的對象(類,模塊,函數等等)應該對於擴展是開放的,但是對於修改是封閉的”[1],這意味著一個實體是允許在不改變它的源代碼的前提下變更它的行為。該特性在產品化
【大話設計模式讀書筆記——代理模式】
oid write 實現 == str href proxy logs i++ 代理模式 代理者是指一個類別可以作為其它東西的接口。代理者可以作任何東西的接口:網絡連接、內存中的大對象、文件或其它昂貴或無法復制的資源。 維基百科-代理模式 代理模式實現遠程圖片加載 /
【大話設計模式讀書筆記——工廠方法模式】
down 除了 wikipedia override 客戶 class a over dfa mar 工廠方法模式 工廠方法模式的實質是“定義一個創建對象的接口,但讓實現這個接口的類來決定實例化哪個類。工廠方法讓類的實例化推遲到子類中進行。 工廠方法模式 VS 簡單工廠
【大話設計模式讀書筆記——原型模式】
class splay 引用類型 play mark 工作經驗 好的 blog 我們 原型模式 原型模式是創建型模式的一種,其特點在於通過“復制”一個已經存在的實例來返回新的實例,而不是新建實例。被復制的實例就是我們所稱的“原型”,這個原型是可定制的。 原型模式多用於創建
設計模式讀書筆記(二)--創建型模式
代碼 技術 bst 簡單 應用 接口 擴展 工廠類 prototype 1、創建型模式抽象了實例化過程。他們幫助一個系統獨立於如何創建、組合和表示它的那些對象、一個類創建型模式使用繼承改變被實例化的類,而一個對象創建型模式將實例化委托給另一個對象。 2、回顧一下創建型模式主
HeadFirst設計模式讀書筆記之工廠模式
1. 簡單工廠 1. 你開了一家披薩店,點披薩的方法可能是這樣: public Pizza orderPizza(String type) { Pizza pizza; if (type.equals("芒果披薩")){ pizza = ne
圖解設計模式讀書筆記(七)——Strategy(策略)模式
顧名思義,策略模式一般應用在使用多種策略(演算法)的情況下,比如一些棋牌遊戲中,電腦會有多種策略去應付使用者,如入門級別,高手級別等。 策略模式將操作抽象成介面,具體的演算法由子類實現,有一個上下文環境Context來使用策略進行操作,context只需持有Strategy
圖解設計模式讀書筆記(九)——Decorator(裝飾)模式
應用場景: 最主要的應用場景就是當要增加一些基本功能的排列組合而產生的非常大量的功能時。 舉幾個例子: 1.文中的裝飾顯示的例子,有多種裝飾方式,比如在字串兩邊加 “|”,或者上下加一行“+------+”這種符號,文中只提到對單行的String的裝飾,還可能會有其他型
圖解設計模式讀書筆記(十五)——Memento(備忘錄)模式
使用場景: 需要儲存狀態,以便將來執行redo/undo操作來恢復狀態。多用在棋牌類遊戲,書寫編輯類應用上。 基本思想: 在保證封裝性的基礎上,將類的屬性狀態在外部儲存起來。 保證封裝性的方式起始就是控制好memento類的可見性,即對於敏感資料,不使用public修
圖解設計模式讀書筆記(十一)——Chain of Responsibility(責任鏈)模式
看到這個模式,最先想到的就是okhttp跟Android的事件處理機制了。 使用場景: 當功能出現分層,層級之間相對獨立這種情況,可考慮使用責任鏈模式。 類關係圖: Handler是一個抽象類,它擁有屬性next,型別是自身型別,並有處理請求但request方法。
設計模式讀書筆記-----原型模式
以前聽過這樣一句話:“程式設計師的最高境界就是Ctrl+C、Ctrl+V”,我們先不論這句話的對錯,就論這個過程,這個過程我們都知道無非就是複製一個物件,然後將其不斷地貼上。這樣的過程我們可以將其稱之為“克隆”。再如我們應聘的時候列印了那麼多的簡歷。
Head First設計模式讀書筆記八 第九章下 組合模式
組合模式+迭代器模式 接著上一節最後的例子,例子的最終list結構圖是這樣的: 若要給DinerMenu新加一種Menu(即下面這樣),則需要對現有結構進行較大改動。 可以看到,目前的結構中分為兩種結構,一種是menu,是一種容器,可以包含選單項,而第二種
Head First設計模式讀書筆記九 第十章 狀態模式
狀態模式例項 用Java設計糖果機吧 大致流程: 上圖中,有四種狀態:沒有硬幣,有硬幣,準備售出狀態以及糖果售罄狀態。而控制糖果機狀態轉換的則是各種動作(Action),這些動作分別是投入硬幣,超時判斷,轉動曲柄,判斷糖果決定是否售出。 GumballMac
圖解設計模式讀書筆記(十七)——Flyweight(輕量/享元)模式
使用場景: 物件可以複用/共享的情況,只new一次,然後將物件例項儲存起來,下次需要使用的時候,先檢視該物件是否已經存在,過存在則直接返回,不存在再new。 類關係圖 一般有一個Flyweig
Head First 設計模式讀書筆記——策略模式
最近研究了一些優秀的開源框架,學習了很多開源框架中自己不熟悉的知識,發現一些優秀的開源框架都或多或少的使用了設計模式,正好為了能分析原始碼不那麼頭疼乾脆先複習一下以前只看過的設計模式,於是我翻出了壓箱底的head first 設計模式,這本書圖文並茂,就是廢話很多不過它完全順
設計模式讀書筆記-工廠模式
單例模式的學習 優化了效能,節省記憶體開支 單例模式一般沒有介面,比較難以拓展,這也意味著難以測試(沒有mock) 單例模式也有執行緒安全問題(懶漢式可能有執行緒安全問題) 如果實現了cloneable介面,並實現了clone方法,則可以直接通過物件複製的形式創
HeadFirst設計模式讀書筆記之策略模式
1. 例子 1. 做一個鴨子模擬器,裡面有很多不同的鴨子,有的可以游泳,有的可以睡覺,有的可以呱呱叫,一般套路是定義一個鴨子的超類,在 超類裡定義睡覺,游泳,呱呱叫的方法,再讓不同的鴨子子類繼承這個超類,實現自己的display()方法來表現鴨子的行為,像下面這樣: 2. 但如果要加一個可以吃火鍋的鴨子呢,
大話設計模式 讀書筆記
第1章 程式碼無錯就是優? -- 簡單工廠模式 例項程式: 計算器程式碼. 初學者問題: 命名規範, 條件判斷, 異常情況處理. 面向物件程式設計: 通過封裝, 繼承, 多型把程式的耦合度降低. 容易維護, 擴充套件, 複用. 舉例: 活字印刷. 改動程式: 封裝業務邏輯, 與介面分開. 用繼承和多型, 分
設計模式讀書筆記-----工廠方法模式
一、問題