在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

演示裝飾器模式的用法

冬至子 ? 來(lái)源:碼農(nóng)架構(gòu) ? 作者:小智 ? 2023-06-08 11:16 ? 次閱讀

裝飾器模式(Decorator Pattern)允許向一個(gè)現(xiàn)有的對(duì)象添加新的功能,同時(shí)又不改變其結(jié)構(gòu)。這種類(lèi)型的設(shè)計(jì)模式屬于結(jié)構(gòu)型模式,它是作為現(xiàn)有的類(lèi)的一個(gè)包裝。

這種模式創(chuàng)建了一個(gè)裝飾類(lèi),用來(lái)包裝原有的類(lèi),并在保持類(lèi)方法簽名完整性的前提下,提供了額外的功能。

我們通過(guò)下面的實(shí)例來(lái)演示裝飾器模式的用法。其中,我們將把一個(gè)形狀裝飾上不同的顏色,同時(shí)又不改變形狀類(lèi)。

結(jié)構(gòu)圖

圖片

角色與理解

  • 裝飾模式共分為四種角色:
  • Component (抽象構(gòu)件):具體構(gòu)件與抽象裝飾類(lèi)的共同父類(lèi),聲明具體構(gòu)件中實(shí)現(xiàn)的業(yè)務(wù)方法,它的出現(xiàn)能夠讓客戶(hù)端一致的透明的對(duì)待裝飾前和裝飾后的類(lèi)
  • ConcreteComponent (具體構(gòu)件):抽象構(gòu)件的子類(lèi),實(shí)現(xiàn)具體的業(yè)務(wù)方法
  • Decorator (抽象裝飾類(lèi)):抽象構(gòu)件的子類(lèi),內(nèi)部維持一個(gè)抽象構(gòu)件的引用,通過(guò)該引用調(diào)用具體構(gòu)件的業(yè)務(wù)方法
  • ConcreteDecorator (具體裝飾類(lèi)):抽象裝飾類(lèi)的實(shí)現(xiàn)類(lèi),聲明并實(shí)現(xiàn)各種裝飾方法實(shí)現(xiàn)對(duì)具體構(gòu)件的裝飾
  • 具體構(gòu)件和裝飾具體構(gòu)件的抽象裝飾類(lèi)通過(guò)注入的方式被抽象裝飾類(lèi)繼續(xù)裝飾
  • 因?yàn)榫唧w構(gòu)件和抽象裝飾類(lèi)都繼承抽象構(gòu)件,所以被裝飾時(shí)可以被同樣的對(duì)待,更加靈活

核心代碼

  • 抽象組件

圖片

  • 具體構(gòu)件

圖片

  • 抽象裝飾類(lèi)

圖片

  • 具體裝飾類(lèi)

圖片

  • 客戶(hù)端

圖片

注意事項(xiàng)

  • 盡量保持裝飾類(lèi)與被裝飾類(lèi)的接口相同,確保在客戶(hù)端調(diào)用時(shí)能夠被一致對(duì)待
  • 被裝飾類(lèi)盡量是一個(gè)“輕”類(lèi),較少的職能,通過(guò)裝飾類(lèi)對(duì)其進(jìn)行擴(kuò)展
  • 如果具體構(gòu)件類(lèi)只有一個(gè),那么抽象裝飾類(lèi)可以直接是具體構(gòu)件類(lèi)的子類(lèi)
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • pattern
    +關(guān)注

    關(guān)注

    0

    文章

    6

    瀏覽量

    9651
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    理解Python裝飾及其工作原理

    Python 是一種對(duì)新手很友好的語(yǔ)言。但是,它也有很多較難掌握的高級(jí)功能,比如裝飾(decorator)。很多初學(xué)者一直不理解裝飾及其工作原理,在這篇文章中,我們將介紹
    發(fā)表于 10-08 11:39 ?2247次閱讀

    SeaORM的基礎(chǔ)用法

    可讀性。 在本教程中,我們將介紹SeaORM的基本用法和進(jìn)階用法。我們將使用SQLite數(shù)據(jù)庫(kù)來(lái)演示這些用法。 基礎(chǔ)用法 在使用SeaORM
    的頭像 發(fā)表于 09-19 14:37 ?2547次閱讀

    基于Rust語(yǔ)言Hash特征的基礎(chǔ)用法和進(jìn)階用法

    ,包括Hash trait、HashMap、HashSet等,本教程將詳細(xì)介紹Rust語(yǔ)言Hash特征的基礎(chǔ)用法和進(jìn)階用法。 基礎(chǔ)用法 使用Hash trait 在Rust語(yǔ)言中,Hash trait
    的頭像 發(fā)表于 09-19 16:02 ?1542次閱讀

    定時(shí)的基本用法是什么

    定時(shí)是單片機(jī)里非常重要的一個(gè)模塊,必須熟練掌握,本篇按這樣的順序展開(kāi):一、簡(jiǎn)單介紹定時(shí)二、定時(shí)基本用法三、定時(shí)高級(jí)使用技巧(linu
    發(fā)表于 07-16 09:01

    OpenHarmony裝飾指定自定義組件:@BuilderParam裝飾

    引入了@BuilderParam裝飾,@BuilderParam用來(lái)裝飾指向@Builder方法的變量,開(kāi)發(fā)者可在初始化自定義組件時(shí)對(duì)此屬性進(jìn)行賦值,為自定義組件增加特定的功能。該裝飾
    發(fā)表于 09-27 16:02

    適配器模式裝飾模式、代理模式的區(qū)別

    適配器模式裝飾模式、代理模式都屬于設(shè)計(jì)模式中的結(jié)構(gòu)型模式
    發(fā)表于 10-18 15:53 ?1.7w次閱讀
    適配器<b class='flag-5'>模式</b>、<b class='flag-5'>裝飾</b><b class='flag-5'>器</b><b class='flag-5'>模式</b>、代理<b class='flag-5'>模式</b>的區(qū)別

    適配器模式裝飾模式的區(qū)別

    裝飾模式指的是在不必改變?cè)?lèi)文件和使用繼承的情況下,動(dòng)態(tài)地?cái)U(kuò)展一個(gè)對(duì)象的功能。它是通過(guò)創(chuàng)建一個(gè)包裝對(duì)象,也就是裝飾來(lái)包裹真實(shí)的對(duì)象。在計(jì)算機(jī)編程中,適配器模式(有時(shí)候也稱(chēng)包裝樣式或者包
    發(fā)表于 01-15 10:31 ?7031次閱讀
    適配器<b class='flag-5'>模式</b>和<b class='flag-5'>裝飾</b><b class='flag-5'>模式</b>的區(qū)別

    Python:裝飾的原理和案例

    Python中的裝飾器用于擴(kuò)展可調(diào)用對(duì)象的功能,而無(wú)需修改其結(jié)構(gòu)。基本上,裝飾函數(shù)包裝另一個(gè)函數(shù)以增強(qiáng)或修改其行為。我們可以通過(guò)一個(gè)具體的例子了解基礎(chǔ)知識(shí)!讓我們編寫(xiě)一個(gè)包含裝飾
    的頭像 發(fā)表于 07-01 11:35 ?2280次閱讀

    GoF給裝飾模式的定義

    的源碼,就會(huì)發(fā)現(xiàn) middleware 功能的實(shí)現(xiàn)用的就是裝飾模式(Decorator Pattern)。
    的頭像 發(fā)表于 06-29 10:22 ?853次閱讀

    嵌入式C語(yǔ)言軟件設(shè)計(jì)之裝飾模式(Decorator Pattern)

    裝飾模式(Decorator Pattern),是結(jié)構(gòu)型設(shè)計(jì)模式的一種,裝飾
    發(fā)表于 03-01 10:55 ?450次閱讀

    在Python中裝飾的使用

    定義 首先我們先來(lái)了解下裝飾的定義。顧名思義,在Python中,裝飾本質(zhì)上就是一個(gè)函數(shù),它可以接收一個(gè)函數(shù)作為參數(shù),然后返回一個(gè)新的函數(shù)。這個(gè)新的函數(shù)可以在執(zhí)行原有函數(shù)之前或之后,
    的頭像 發(fā)表于 06-21 16:54 ?784次閱讀

    裝飾模式和代理模式的區(qū)別

    什么是裝飾模式 裝飾模式(Decorator Pattern): 在不改變對(duì)象自身的基礎(chǔ)上,
    的頭像 發(fā)表于 10-08 14:25 ?4126次閱讀
    <b class='flag-5'>裝飾</b><b class='flag-5'>器</b><b class='flag-5'>模式</b>和代理<b class='flag-5'>模式</b>的區(qū)別

    Python自制簡(jiǎn)單實(shí)用的日志裝飾

    在寫(xiě)代碼的時(shí)候,往往會(huì)漏掉日志這個(gè)關(guān)鍵因素,導(dǎo)致功能在使用的時(shí)候出錯(cuò)卻無(wú)法溯源。 其實(shí),只需要寫(xiě)一個(gè)非常簡(jiǎn)單的日志裝飾,我們就能大大提升排查問(wèn)題的效率。 1.簡(jiǎn)陋版裝飾 寫(xiě)一個(gè)
    的頭像 發(fā)表于 10-21 14:39 ?773次閱讀
    Python自制簡(jiǎn)單實(shí)用的日志<b class='flag-5'>裝飾</b><b class='flag-5'>器</b>

    Python 自制簡(jiǎn)單實(shí)用的日志裝飾

    在寫(xiě)代碼的時(shí)候,往往會(huì)漏掉日志這個(gè)關(guān)鍵因素,導(dǎo)致功能在使用的時(shí)候出錯(cuò)卻無(wú)法溯源。 其實(shí),只需要寫(xiě)一個(gè)非常簡(jiǎn)單的日志裝飾,我們就能大大提升排查問(wèn)題的效率。 1.簡(jiǎn)陋版裝飾 寫(xiě)一個(gè)
    的頭像 發(fā)表于 10-31 15:05 ?529次閱讀
    Python 自制簡(jiǎn)單實(shí)用的日志<b class='flag-5'>裝飾</b><b class='flag-5'>器</b>

    如何寫(xiě)一個(gè)簡(jiǎn)單的裝飾

    今天介紹的是一個(gè)已經(jīng)存在十三年,但是依舊不紅的庫(kù) decorator,好像很少有人知道他的存在一樣。 這個(gè)庫(kù)可以幫你做什么呢 ? 其實(shí)很簡(jiǎn)單,就是可以幫你更方便地寫(xiě)python裝飾代碼,更重
    的頭像 發(fā)表于 11-01 09:54 ?533次閱讀
    如何寫(xiě)一個(gè)簡(jiǎn)單的<b class='flag-5'>裝飾</b><b class='flag-5'>器</b>
    主站蜘蛛池模板: www亚洲免费 | 一级黄色毛片播放 | 日本高清视频不卡 | 天天夜约 | 日本特黄在线观看免费 | 欧美巨波霸乳影院67194 | 又大又粗进出白浆直流动态图 | 老色鬼久久综合第一 | 欧美性猛交xxxx | 亚洲国产成a人v在线观看 | 色吧综合网 | 国产一级特黄全黄毛片 | 婷婷视频网| 国产又黄又爽又猛的免费视频播放 | 免费看18污黄| 国内精品视频 | 国产区精品高清在线观看 | 一区二区不卡免费视频 | 1024你懂的国产日韩欧美 | 狠狠色噜噜狠狠狠狠米奇7777 | 久久精品五月天 | 成人网中文字幕色 | 成 人 黄 色视频免费播放 | 天天色天天爽 | 亚洲人成网站色7799在线观看 | 天天透天天干 | 97黄网| 日本高清免费aaaaa大片视频 | 极品美女洗澡后露粉嫩木耳视频 | 妇少香港三日本三级视频 | 欧美午夜精品久久久久久黑人 | 不卡一级毛片免费高清 | 午夜想想爱午夜剧场 | 七月婷婷精品视频在线观看 | 久久这里只有精品任你色 | 日本三级视频在线观看 | 色免费看 | 亚洲精品一区二区中文 | 四虎永久精品免费网址大全 | 天天干天天日天天射天天操毛片 | 欧美天天搞 |