欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

java如何實(shí)現(xiàn)裝飾者模式-創(chuàng)新互聯(lián)

這篇文章主要介紹java如何實(shí)現(xiàn)裝飾者模式,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

創(chuàng)新互聯(lián)建站一直秉承“誠(chéng)信做人,踏實(shí)做事”的原則,不欺瞞客戶,是我們最起碼的底線! 以服務(wù)為基礎(chǔ),以質(zhì)量求生存,以技術(shù)求發(fā)展,成交一個(gè)客戶多一個(gè)朋友!為您提供成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、成都外貿(mào)網(wǎng)站建設(shè)、成都網(wǎng)頁(yè)設(shè)計(jì)、微信平臺(tái)小程序開發(fā)、成都網(wǎng)站開發(fā)、成都網(wǎng)站制作、成都軟件開發(fā)、手機(jī)APP定制開發(fā)是成都本地專業(yè)的網(wǎng)站建設(shè)和網(wǎng)站設(shè)計(jì)公司,等你一起來(lái)見(jiàn)證!

定義:

    在不必改變?cè)愇募驮愂褂玫睦^承的情況下,動(dòng)態(tài)地?cái)U(kuò)展一個(gè)對(duì)象的功能。
    它是通過(guò)創(chuàng)建一個(gè)包裝對(duì)象,也就是用裝飾來(lái)包裹真實(shí)的對(duì)象來(lái)實(shí)現(xiàn)。

角色:

    抽象構(gòu)件角色(Project):給出一個(gè)接口,以規(guī)范準(zhǔn)備接收附加責(zé)任的對(duì)象。
    具體構(gòu)件角色(Employe):定義一個(gè)將要接收附加責(zé)任的類。
    裝飾角色(Manager):持有一個(gè)構(gòu)件對(duì)象的實(shí)例,并定義一個(gè)與抽象構(gòu)件接口一致的接口。
    具體裝飾角色(ManagerA、ManagerB):負(fù)責(zé)給構(gòu)件對(duì)象“貼上”附加的責(zé)任。

示例:

公共接口:

public interface Person { 
  void eat(); 
}

被裝飾對(duì)象:

public class OldPerson implements Person { 
  @Override 
  public void eat() { 
    System.out.println("吃飯"); 
  } 
}

裝飾對(duì)象:

public class NewPerson implements Person { 
  private OldPerson p; 

  NewPerson(OldPerson p) { 
    this.p = p; 
  } 

  @Override 
  public void eat() { 
    System.out.println("生火"); 
    System.out.println("做飯"); 
    p.eat(); 
    System.out.println("刷碗");  
  } 
}

測(cè)試:

public class PersonDemo { 
  public static void main(String[] args) { 
    OldPerson old = new OldPerson(); 
    //old.eat(); 
    NewPerson np = new NewPerson(old); 
    np.eat(); 
  } 
}

        通過(guò)例子可以看到,沒(méi)有改變?cè)瓉?lái)的OldPerson類,同時(shí)也沒(méi)有定義他的子類而實(shí)現(xiàn)了Person的擴(kuò)展,這就是裝飾者模式的作用。

優(yōu)點(diǎn):

        1、使用裝飾者模式比使用繼承更加靈活,因?yàn)樗x擇通過(guò)一種動(dòng)態(tài)的方式來(lái)擴(kuò)展一個(gè)對(duì)象的功能,在運(yùn)行時(shí)可以選擇不同的裝飾器,從而實(shí)現(xiàn)不同的行為。

        2、通過(guò)使用不同的具體裝飾類以及這些裝飾類的排列組合,可以創(chuàng)造出很多不同行為的組合??梢允褂枚鄠€(gè)具體裝飾類來(lái)裝飾同一對(duì)象,得到功能更為強(qiáng)大的對(duì)象。

        3、具體構(gòu)件類與具體裝飾類可以獨(dú)立變化,他能是低耦合的。用戶可以根據(jù)需要來(lái)增加新的具體構(gòu)件類和具體裝飾類,在使用時(shí)再對(duì)其進(jìn)行各種組合,原有代碼無(wú)須改變,符合“開閉原則”。 

缺點(diǎn):

        1、會(huì)產(chǎn)生很多的小對(duì)象,增加了系統(tǒng)的復(fù)雜性

        2、這種比繼承更加靈活機(jī)動(dòng)的特性,也同時(shí)意味著裝飾模式比繼承更加易于出錯(cuò),排錯(cuò)也很困難,對(duì)于多次裝飾的對(duì)象,調(diào)試時(shí)尋找錯(cuò)誤可能需要逐級(jí)排查,較為煩瑣。 

裝飾者與適配者模式的區(qū)別:

1、適配器模式主要用來(lái)兼容那些不能在一起工作的類,使他們轉(zhuǎn)化為可以兼容目標(biāo)接口,雖然也可以實(shí)現(xiàn)和裝飾者一樣的增加新職責(zé),但目的不在此。

裝飾者模式主要是給被裝飾者增加新職責(zé)的。

2、適配器模式是用新接口來(lái)調(diào)用原接口,原接口對(duì)新系統(tǒng)是不可見(jiàn)或者說(shuō)不可用的。
裝飾者模式原封不動(dòng)的使用原接口,系統(tǒng)對(duì)裝飾的對(duì)象也通過(guò)原接口來(lái)完成使用。

 3、適配器是知道被適配者的詳細(xì)情況的(就是那個(gè)類或那個(gè)接口)。

裝飾者只知道其接口是什么,至于其具體類型(是基類還是其他派生類)只有在運(yùn)行期間才知道。 

裝飾者和繼承的區(qū)別:

繼承:

  優(yōu)點(diǎn):代碼結(jié)構(gòu)清晰,而且實(shí)現(xiàn)簡(jiǎn)單
  缺點(diǎn):對(duì)于每一個(gè)的需要增強(qiáng)的類都要?jiǎng)?chuàng)建具體的子類來(lái)幫助其增強(qiáng),這樣會(huì)導(dǎo)致繼承體系過(guò)于龐大。

裝飾者:

  優(yōu)點(diǎn):內(nèi)部可以通過(guò)多態(tài)技術(shù)對(duì)多個(gè)需要增強(qiáng)的類進(jìn)行增強(qiáng)
       缺點(diǎn):需要內(nèi)部通過(guò)多態(tài)技術(shù)維護(hù)需要增強(qiáng)的類的實(shí)例。進(jìn)而使得代碼稍微復(fù)雜。

使用場(chǎng)景:

        1、需要擴(kuò)展一個(gè)類的功能,或給一個(gè)類添加附加職責(zé)。
        2、需要?jiǎng)討B(tài)的給一個(gè)對(duì)象添加功能,這些功能可能不明確或者暫時(shí)的,可以隨時(shí)很方便的動(dòng)態(tài)撤銷掉。
        3、需要增加由一些基本功能的排列組合而產(chǎn)生的非常大量的功能,從而使繼承關(guān)系變的不現(xiàn)實(shí)。
        4.、當(dāng)不能采用生成子類的方法進(jìn)行擴(kuò)充時(shí)。一種情況是,可能有大量獨(dú)立的擴(kuò)展,為支持每一種組合將產(chǎn)生大量的子類,使得子類數(shù)目呈爆炸性增長(zhǎng)。另一種情況可能是因?yàn)轭惗x被隱藏,或類定義不能用于生成子類。

以上是“java如何實(shí)現(xiàn)裝飾者模式”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

分享標(biāo)題:java如何實(shí)現(xiàn)裝飾者模式-創(chuàng)新互聯(lián)
新聞來(lái)源:http://aaarwkj.com/article6/icsog.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊(cè)、微信公眾號(hào)品牌網(wǎng)站設(shè)計(jì)、外貿(mào)建站網(wǎng)站制作、服務(wù)器托管

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁(yè)設(shè)計(jì)
小骚货操死你视频在线观看| 国产一区二区三区性色| 久激情内射婷内射蜜桃| 日韩欧美日日夜夜精品| 精品一区二区三区乱码中文| 日本少妇人妻一区二区| 亚洲国产日韩精品自拍av| 蜜桃福利视频一区二区| 国内一级片内射免费视频观看| 久草福利资源在线观看视频| 久久亚洲av麻衣北条麻妃 | 日韩乱码高清一本免费啪| 亚洲精品视频在线观看视频| 欧美专区另类综合日韩| 精品午夜人妻一区二区| 剧情av一区二区在线| 精品一区二区人妻乱交| 四虎精品免费在线视频| 国产一级一片内射视频| 天天操夜夜操狠狠操91| 日韩中文字幕久久中文字幕| 精品人妻一区二区四区| 国产女人和拘做受视频| 日韩精品一二三黄色一级| 欧美黄片在线播放视频| 国产午夜福利一区在线| 日本人妻中文字幕在线一区| 琪琪精品免费一区二区三区| 亚洲中文自偷自拍另类| 日韩欧美精品一区二区三区四区| 国产黄片大秀在线观看| 一区二区三区特黄色片| 尤物视频精品在线观看| 亚洲综合av一区二区三区四区| 亚洲欧美av中文日韩二区| 亚洲欧美高清一区二区| 国产精品—色哟哟视频| 国语对白自拍视频在线播放| 风间由美亚洲一区二区三区| 亚洲老司机深夜福利| 国产精品毛片一区内射|