《Head First 設(shè)計(jì)模式》書(shū)摘-裝飾者模式/抽象工廠模式/工廠方法模式

歡迎訪問(wèn)我的博客:http://wangnan.tech

裝飾者模式

定義

動(dòng)態(tài)地將責(zé)任附加到對(duì)象上,想要擴(kuò)展功能,裝飾者提供有別于繼承的另一種選擇

get到的oo原則

  • 對(duì)擴(kuò)展開(kāi)放,對(duì)修改關(guān)閉

要點(diǎn)

  • 繼承屬于擴(kuò)展形式之一,但不見(jiàn)得是達(dá)到彈性設(shè)計(jì)的最佳方式。
  • 在我們的設(shè)計(jì)中,應(yīng)該允許行為可以被擴(kuò)展,而無(wú)須修改現(xiàn)有的代碼。
  • 組合和委托可用于在運(yùn)行時(shí)動(dòng)態(tài)地加上新的行為。
  • 除了繼承,裝飾者模式也可以讓我們擴(kuò)展行為。
  • 裝飾者模式意味著一群裝飾者類, 這些類用來(lái)包裝具體組件。
  • 裝飾者類反映出被裝飾的組件類型(事實(shí)上,他們具有相同的類型,都經(jīng)過(guò)接口或繼承實(shí)現(xiàn))。
  • 裝飾者可以在被裝飾者的行為前面與/或后面加上自己的行為, 甚至將被裝飾者的行為整個(gè)取代掉,而達(dá)到特定的目的。
  • 你可以用無(wú)數(shù)個(gè)裝飾者包裝一個(gè)組件。
  • 裝飾者一般對(duì)組件的客戶是透明的,除非客戶程序依賴于組件的具體類型。
  • 裝飾者會(huì)導(dǎo)致設(shè)計(jì)中出現(xiàn)許多小對(duì)象,如果過(guò)度使用,會(huì)讓程序變得很復(fù)雜。

抽象工廠模式/工廠方法模式

抽象工廠模式定義

提供一個(gè)接口,用于創(chuàng)建相關(guān)或依賴對(duì)象的家族,而不需要明確指定具體類

工廠方法模式定義

定義一個(gè)創(chuàng)建對(duì)象的接口,但由子類絕對(duì)實(shí)例化的類是哪一個(gè),工廠方法讓類把實(shí)例化推遲到子類

get到的oo原則

  • 依賴抽象,不是依賴具體類

要點(diǎn)

  • 所有的工廠都是用來(lái)對(duì)象的創(chuàng)建
  • 簡(jiǎn)單工廠,雖然不是真正的設(shè)計(jì)模式,但仍不失一個(gè)簡(jiǎn)單的方法,可以將客戶端程序從具體類解耦
  • 工廠方法使用繼承,把對(duì)象的創(chuàng)建委托給子類,子類實(shí)現(xiàn)工廠方法來(lái)創(chuàng)建對(duì)象
  • 抽象工廠使用對(duì)象組合,對(duì)象的創(chuàng)建被實(shí)現(xiàn)在工廠接口所暴露出來(lái)的方法中
  • 所有工廠模式都通過(guò)減少應(yīng)用程序和具體類之間的依賴促進(jìn)松耦合
  • 工廠方法允許類將實(shí)例化延遲到子類進(jìn)行
  • 抽象工廠創(chuàng)建相關(guān)的對(duì)象家族,而不需要依賴他們的具體類
  • 依賴倒置原則,指導(dǎo)我們避免依賴具體類型,而要盡量依賴抽象
  • 工廠是很有威力的技巧,幫助我們針對(duì)抽象變成,而不是針對(duì)具體類編程
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 設(shè)計(jì)模式匯總 一、基礎(chǔ)知識(shí) 1. 設(shè)計(jì)模式概述 定義:設(shè)計(jì)模式(Design Pattern)是一套被反復(fù)使用、多...
    MinoyJet閱讀 4,081評(píng)論 1 15
  • 設(shè)計(jì)模式基本原則 開(kāi)放-封閉原則(OCP),是說(shuō)軟件實(shí)體(類、模塊、函數(shù)等等)應(yīng)該可以拓展,但是不可修改。開(kāi)-閉原...
    西山薄涼閱讀 4,080評(píng)論 3 14
  • 一、設(shè)計(jì)模式的分類 總體來(lái)說(shuō)設(shè)計(jì)模式分為三大類: 創(chuàng)建型模式,共五種:工廠方法模式、抽象工廠模式、單例模式、建造者...
    RamboLI閱讀 827評(píng)論 0 1
  • 1 場(chǎng)景問(wèn)題# 1.1 導(dǎo)出數(shù)據(jù)的應(yīng)用框架## 考慮這樣一個(gè)實(shí)際應(yīng)用:實(shí)現(xiàn)一個(gè)導(dǎo)出數(shù)據(jù)的應(yīng)用框架,來(lái)讓客戶選擇數(shù)據(jù)...
    七寸知架構(gòu)閱讀 7,010評(píng)論 6 75
  • Iterator模式 (迭代器) 一個(gè)一個(gè)遍歷 一個(gè)集合類可以遵守 Iterator 協(xié)議,并實(shí)現(xiàn)一個(gè) Itera...
    SSBun閱讀 1,985評(píng)論 0 15

友情鏈接更多精彩內(nèi)容