設計模式 -- 生活篇

不管是新手還是老鳥,想必都聽說過這么一個詞 -- 設計模式,至于他是什么,謂仁者見仁,智者見者。

本人呢,最近也研(zhuang)讀(b)了一下它,在這陪大家聊兩句,非喜勿噴。
PS: 參考書籍 《Head First 設計模式》

閑言少敘,書接正文

讀后感: 套路,都他娘滴套路,設計模式,絕對是套路界的鼻祖楷模。

這話什么意思呢,所謂的設計模式,就是前輩們辛辛苦苦打怪升級總結的副本攻略,你呢,攻略拿到手,在去下這個副本,絕對妥妥的穩過。在此,可能有的小伙伴就不高興了,我就喜歡自己打副本,就當是開荒了,這當然可以了,對吧。不過,不好意思,我20級了,您老人還在10級晃悠呢!!!哈哈。。。

城市套路深,俺想回農村。

文章標題為什么是生活篇呢,客觀暫且往下邊看,我這邊列舉部分設計模式,稍后會慢慢補全,嘿嘿。。。
(PS: 黑色大號字--書中對設計模式的定義;黑色小號字--本人理解)

  • 策略模式 -- 定義算法族,分別封裝起來,讓他們之間可以互相替換,此模式讓算法的變化獨立于使用算法的客戶。

東北大燴菜與南方精致小菜,一鍋粥似的亂燉,不如一點一點的分離開來,做成精致小菜,方便一個個上盤。
  • 觀察者模式 -- 在對象之間定義一對多的依賴,這樣一來,當一個對象改變狀態,依賴它的對象都會收到通知,并自動更新。以松耦方式在一系列對象之間溝通狀態。

一家五口,三個孩子,爸爸說,我病了,孩子們撒丫的往回跑來看爸爸,可不是為了房子哦。
  • 裝飾者模式 -- 動態地將責任附加到對象上。想要擴展功能,裝飾者提供有別于繼承的另一種選擇。

定義一個基類,然后把不同功能的類,疊加到基類上。舉例來說,你有一個發動機,你給它安上四個輪子,就是汽車;你給它安上兩個輪子,就是摩托車。
  • 工廠模式 -- 定義了一個創建對象的接口,但由子類決定要實例化的類是哪一個。工廠方法讓類把實例化推遲到子類。

  • 抽象工廠模式 -- 提供一個接口,用于創建相關或依賴對象的家族,而不需要明確指定具體類。

把對象的創建封裝起來,并且下放到子類去實現,以便于得到更松耦合、更有彈性的設計。

其實,可以這樣理解:
你給我一碗米飯,我還你一份蓋飯
一份炒飯
一份飯團
。。。
這些都是我說了算。

  • 單例模式 -- 確保一個類只有一個實例,并提供全部訪問點。

簡單來說,老子就是唯一的,是你們 new() 不出來的。
  • 命令模式 -- 將請求封裝成對象,這可以讓你使用不同的請求、隊列,或者日志請求來參數化其他對象。命令模式也可以支持撤銷操作。

我命令你去給我買一份飯,我不管你去哪買,哈哈。。。
  • 適配器模式 -- 將一個類的接口,轉換成客戶期望另一個接口。適配器讓原本不兼容的類可以合作無間。

適配器,就像你要出國旅游,我們是不是需要買一個插座轉換器,我想出過國的小伙伴都懂滴。。。
  • 外觀模式 -- 提供了一個統一的接口,用來訪問子系統中的一群接口。外觀定義了一個高層接口,讓子系統更容易使用。

用手機來說,我只需要一個打電話功能,我不管你這個功能背后有多少個實現方式。
  • 代理模式 -- 為另一個對象提供一個替身或占位符以訪問這個對象。

我的快遞到了,告訴前臺,幫我簽收一下。(iOS)

PS: iOS 程序狗一枚
可能在對某些設計模式的理解有所偏差。

未完待續。。。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容