設計模式從放棄到入門
設計模式系列3--中介者模式
image 我們使用的電腦,你完成的任何一個功能都需要cpu、記憶體、顯示卡、鍵盤、顯示器等這些零件相互呼叫才能完成功能,如果讓這些零件之間直接互相呼叫,那麼他們之間的關係可能如下圖所示,非常凌亂複雜: image 但是電腦開發商並沒有讓這些零件之間相互直接呼叫,而是通過主機板來統一…
常用的 JavaScript 設計模式
設計模式太多了,貌似有 23 種,其實我們在平時的工作中沒有必要特意去用什麼樣的設計模式,或者你在不經意間就已經用了設計模式當中的一種。本文旨在總結平時相對來說用的比較多的設計模式。
裝飾器模式(從放棄到入門)
裝飾器模式,詳細解釋。理論 + 例子 + 實踐 + 總結,不信你不懂!
LOL設計模式之「策略模式」
之前寫過一篇什麼是「設計模式」?,沒有類圖,沒有程式碼,有些同學說看不太懂,今天給大家帶來策略模式(有圖,有碼,有真相!)。 英雄聯盟(LOL)玩過LOL的同學都知道,LOL有上百個英雄,如果用OO技術來設計這些英雄該怎麼辦?小明:簡單,先來個父類(Superclass),然後讓…
設計模式 (一) 工廠模式 五種寫法總結
設計模式相關的文章學習與總結,一直有意為之,一直又覺得時機不到。
一 是怕自己程式碼經驗還不夠,學習了也不懂,強行理解沒有意義。
二 是怕自己學習了以後總結出來,萬一有不對的地方,誤人子弟。
而在現在的公司摸爬滾打半年後,感覺自己寫程式碼遇到了瓶頸,想寫好寫優雅,卻不清楚這麼寫究竟是自以為優雅 還是真的優雅。或對著看一些系統原始碼、框架原始碼時,不太理解他們這麼寫是為什麼。
於是我開始了學習之路,從比較簡單的工廠模式開刀,看了大概 10 + 篇資料,發現各位大大對工廠模式的各種寫法叫法不一,理解也不一,而且沒有一篇是 ** 比較全的收錄各種寫法 ** 的。so,這也堅定了我將它總結寫出來的決心,既然每個人的理解都有或多或少的缺失或衝突,那我也總結一份我的理解,呈現出來,供各位看官參考 點評。
Java 設計模式之責任鏈模式
責任鏈模式(Chain of Responsibility Pattern)為請求建立了一個接收者物件的鏈。這種模式給予請求的型別,對請求的傳送者和接收者進行解耦。這種型別的設計模式屬於行為型模式。
回饋顧客, 活動搞起 --- 策略模式
前情提要 上集講到, 小光引入了飲料機 (工廠方法模式) 改進了光氏飲品的生產過程. 現在如果要新上什麼飲品, 改變配方什麼的, 都很簡單了, 直接增加一個飲料機, 或是替換 / 拿掉一個飲料機就可以了. 表妹再也不抱怨了. 小光也找了些飲料廠商拿到了一些試喝的飲料新品. 心想, 正好…
光氏飲品升級了 --- 工廠方法模式
前情提要 上集講到, 小光的熱乾麵店, 開始搭配提供飲料了. 再加上美女表妹的助陣, 生意是紅紅火火啊. 然而, 事情也不是盡善盡美的, 慢慢小光就聽到了一些的客戶的聲音: 酸梅湯太酸了, 能調好點嗎? 天冷了能來點熱飲嗎? 客戶可是上帝啊, 小光立馬就著手改進. 表妹的抱怨 …
觀察者模式的 Java 實現及應用
自己用程式碼實現一個觀察者模式;
利用 Java 提供的包實現一個觀察者模式;
觀察者模式在 Android 中的應用舉例。
設計模式系列1--開篇漫談
大概花了一個半月的時間把市面上比較知名的設計模式類的書全部買回來學習了一遍,這些書裡面有好有壞。如果想系統的學習設計模式,我建議還是買書看,因為書上的知識比較系統和權威,不像網上的文章良莠不齊,雖然有很多有些的部落格的文章不錯,但是剛開始自學也沒有能力去分辨。 這篇文章應該算是學…
Android 原始碼中的組合模式
分享 Android 原始碼中的組合模式。
設計模式系列 11-- 橋接模式
image 假設要實現一個給客戶傳送提示訊息的功能,傳送的訊息型別可分為:普通訊息、加急訊息、特加急訊息等等,而每種訊息的傳送的方式一般有:系統內推送、手機簡訊、電子郵件等等。如果讓我們來實現,會怎麼做呢? 我們先來實現一個簡單的版本,使用系統推送和電子郵件傳送普通訊息,實現起…
Java設計模式之狀態模式
狀態模式簡介 在狀態模式(State Pattern)中,類的行為是基於它的狀態改變的。這種型別的設計模式屬於行為型模式。在狀態模式中,我們建立表示各種狀態的物件和一個行為隨著狀態物件改變而改變的 context 物件。 意圖:允許物件在內部狀態發生改變時改變它的行為,物件看起…
設計模式系列9--狀態模式
image 今天我們來做一個糖果機吧,使用者只需要投入25美分,就可以購買糖果了,具體的構造如下圖所示: image 每個圓圈都表示一種狀態,而每個箭頭都表示一種動作,這些狀態隨著不同動作的進行就可以不斷切換。從圖中可以看到我們有四種狀態和四種動作,那麼廢話不多說,下面我們就來看…
大龍幫忙去談判---代理模式
前情提要 上集講到, 小光利用裝飾者模式調校好了飲品加料(糖, 冰, 蜂蜜...)的流程. 從此再也不怕客戶的各種要求了. 各式飲品也成了小光熱乾麵店的一大特色. 當然, 飲品的試喝也不是無期限了. 試喝期快結束了, 小光跟表妹商量了下, 結合顧客們的反饋, 他們選定了其中三家…
設計模式系列8--策略模式
場景分析 我們在網上購買商品的時候,經常遇到各種打折優惠活動,不同的節假日或者時間優惠策略都不相同,如果讓我們去實現,那麼如何做呢? 常規做法是根據不同的優惠政策,使用if進行判斷,寫很多判斷分支進行處理。類似下面這種。 if (正常價格) { //具體優惠策略處理 }else…
介面卡模式 : 農村小夥娶烏克蘭美女
從農村小夥娶烏克蘭美女,談到介面卡模式,包教包會
設計模式系列4--生成器模式
image 假設我們要生產一臺手機,為了方便我們把生產手機的步驟分為三大步: 生成cpu 生成其他零配件 生成螢幕 然後把這三部生成的產品組裝起來就生成了一部手機。假設我們要生成不同品牌的手機那麼就要不斷重複著三個步驟去生成不同的產品然後組裝。可以發現在這個過程中,生成一部手機…
Java 設計模式之單例模式
單例模式確保某個類只有一個例項,而且自行例項化並向整個系統提供這個例項。在計算機系統中,執行緒池、快取、日誌物件、對話方塊、印表機、顯示卡的驅動程式物件常被設計成單例。這些應用都或多或少具有資源管理器的功能。每臺計算機可以有若干個印表機,但只能有一個 Printer Spooler,以避免兩個列印作業同時輸出到印表機中。每臺計算機可以有若干通訊埠,系統應當集中管理這些通訊埠,以避免一個通訊埠同時被兩個請求同時呼叫。總之,選擇單例模式就是為了避免不一致狀態,避免政出多頭。
可樂要加冰才好喝啊 --- 裝飾模式
前情提要 上集講到, 小光利用策略模式搞起了回饋顧客的活動. 還別說, 客流量增大不少. 然而, 隨之而來的, 顧客的聲音也不少: 可樂能不能加冰啊 綠豆湯加點糖唄 ...... 眾口難調嘛, 大家的需求不一, 有的要冰有的不要, 有的加糖有的不要... 小光帶著客戶的意見, …
常用設計模式彙總
Head First 設計模式整理
觀察者模式(ObserverPattern)
轉載請註明出處:http://www.jianshu.com/p/d55ee6e83d66歡迎大家關注我的知乎專欄:https://zhuanlan.zhihu.com/baron文章中的例子和思路均來自於《Head First》 場景 我們接到一個來自氣象局的需求:氣象局需要…
設計模式的幾大原則
本篇文章我們組織 ThinkKeep 中的一篇, 來自於本人, 雖然是很經典的東西, 又有多少人真正掌握呢?
小光熱乾麵提供飲料了 --- 簡單工廠
前情提要 本意是想像美劇的 previously 那樣, 不知道怎麼翻譯好, 求翻譯達人賜教... 上集講到, 小光辭了工作, 開起了熱乾麵的店子, 用 Builder 模式改造了熱乾麵的構建過程, 是日漸穩定有效起來, 生意也是越來越好. 但是小光是善於觀察的同學啊, 他發現熱乾麵真…
賣熱乾麵的啟發 ---Builder 模式
看個故事 網際網路寒冬來襲, 小光越來越覺得碼農這個行當不太好混了. 年關將至, 思鄉之情也是倍切. 心底一橫, 要不直接回老家做點小買賣得了~ 說做就做, 小光辭了工作, 回到老家武漢, 做起了賣熱乾麵的行當. 小光秉著科學開店, 合理經營的心思, 走訪老店, 探索人流, 最終把…
觀察者模式(從放棄到入門)
這個觀察者模式的例子完整的結合了書本,自己的思考,以及 Java 的原始碼,感覺寫下來我自己也受益匪淺,希望能給你也有一定的幫助。
相關文章
- Vue 從入門到放棄Vue
- Git 從入門到放棄Git
- GraphQL從入門到放棄
- Nginx從入門到放棄Nginx
- webpack從入門到放棄Web
- 推送 從入門到放棄
- Swift從入門到放棄Swift
- HTTP從入門到放棄HTTP
- openstack從入門到放棄
- JavaScript 從入門到放棄JavaScript
- NumPy從入門到放棄
- Spark從入門到放棄---RDDSpark
- XXE從入門到放棄
- 快取從入門到放棄快取
- webpack 從入門到放棄(一)Web
- swoole——從入門到放棄(一)
- 從入門到放棄 - 事件溯源事件
- swoole——從入門到放棄(三)
- FQ:從入門到放棄(二)
- 敏捷QA,從入門到放棄敏捷
- HTTP快取從入門到放棄HTTP快取
- Taro 小程式 從入門到放棄!
- t-SNE 從入門到放棄
- deepspeed從入門到放棄
- Scikit-learn從入門到放棄
- Elasticsearch從入門到放棄:再聊搜尋Elasticsearch
- Flink從入門到放棄-大綱
- Realm資料庫 從入門到“放棄”資料庫
- 分散式訓練從入門到放棄分散式
- 從入門到放棄之大資料Hive大資料Hive
- Redis從入門到放棄系列(十) ClusterRedis
- AOP埋點從入門到放棄(三)
- AOP埋點從入門到放棄(二)
- Spark從入門到放棄——初始Spark(一)Spark
- 從入門到放棄,我用了五年
- 從入門到放棄之promise用法(上)Promise
- Realm 資料庫 從入門到“放棄”資料庫
- JavaScript30秒, 從入門到放棄JavaScript