亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

裝飾者模式

GeekGhc / 1979人閱讀

摘要:實(shí)現(xiàn)對(duì)衣服進(jìn)行抽象有一件襯衫襯衫給衣服裝飾一些飾品,對(duì)飾品進(jìn)行抽象在衣服上加一個(gè)泰迪熊泰迪熊在衣服上加一朵花花兒實(shí)現(xiàn)一個(gè)裝飾有泰迪熊花兒的襯衫這個(gè)寫法是不是讓你想起什么一件帶花兒泰迪熊的襯衫出來了衣服的組成部分

描述:采用組合的方式將多個(gè)同類對(duì)象任意搭配組成一個(gè)對(duì)象,達(dá)到增強(qiáng)效果

場(chǎng)景:比如一件衣服如果只是一件襯衫,那么太單調(diào)了,如果在這衣服上加上泰迪熊、花兒,那么這件衣服就特有喜感了(相當(dāng)于衣服的功能加強(qiáng)了,可以讓人笑了)。

實(shí)現(xiàn):

// 對(duì)衣服進(jìn)行抽象
abstract class Clothes {
    abstract String description();
}
// 有一件襯衫
class Shirt extends Clothes {
    @Override
    String description() {
        return "襯衫";
    }
}
// 給衣服裝飾一些飾品,對(duì)飾品進(jìn)行抽象
abstract class Decorator extends Clothes {
    Clothes clothes;
    Decorator(Clothes clothes) {
        this.clothes = clothes;
    }
}
// 在衣服上加一個(gè)泰迪熊
class TedBearDecorator extends Decorator {
    TedBearDecorator(Clothes clothes) {
        super(clothes);
    }
    @Override
    String description() {
        return this.clothes.description() + "," + "泰迪熊";
    }
}
//在衣服上加一朵花
class FlowerDecorator extends Decorator {
    FlowerDecorator(Clothes clothes) {
        super(clothes);
    }
    @Override
    String description() {
        return this.clothes.description() + "," + "花兒";
    }
}
// 實(shí)現(xiàn)一個(gè)裝飾有泰迪熊、花兒的襯衫
public class DecoratorDemo {
    public static void main(String[] args) {
        // 這個(gè)寫法是不是讓你想起什么
        Clothes tedFlowerShirt = new TedBearDecorator(new FlowerDecorator(new Shirt()));
        // 一件帶花兒、泰迪熊的襯衫出來了
        System.out.println("衣服的組成部分:" + tedFlowerShirt.description());
    }
}

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/64014.html

相關(guān)文章

  • Java 設(shè)計(jì)模式裝飾模式

    摘要:裝飾者模式組成結(jié)構(gòu)抽象構(gòu)件給出抽象接口或抽象類,以規(guī)范準(zhǔn)備接收附加功能的對(duì)象。裝飾者模式圖解裝飾者模式應(yīng)用場(chǎng)景需要擴(kuò)展一個(gè)類的功能,或給一個(gè)類添加附加職責(zé)。裝飾者對(duì)象接受所有來自客戶端的請(qǐng)求。參考資料設(shè)計(jì)模式 一、了解裝飾者模式 1.1 什么是裝飾者模式 裝飾者模式指的是在不必改變?cè)愇募褪褂美^承的情況下,動(dòng)態(tài)地?cái)U(kuò)展一個(gè)對(duì)象的功能。它是通過創(chuàng)建一個(gè)包裝對(duì)象,也就是裝飾者來包裹真實(shí)的對(duì)...

    kumfo 評(píng)論0 收藏0
  • 設(shè)計(jì)模式裝飾模式

    摘要:相關(guān)設(shè)計(jì)模式裝飾者模式和代理模式裝飾者模式關(guān)注再一個(gè)對(duì)象上動(dòng)態(tài)添加方法代理模式關(guān)注再對(duì)代理對(duì)象的控制訪問,可以對(duì)客戶隱藏被代理類的信息裝飾著模式和適配器模式都叫包裝模式關(guān)于新職責(zé)適配器也可以在轉(zhuǎn)換時(shí)增加新的職責(zé),但主要目的不在此。 0x01.定義與類型 定義:裝飾模式指的是在不必改變?cè)愇募褪褂美^承的情況下,動(dòng)態(tài)地?cái)U(kuò)展一個(gè)對(duì)象的功能。它是通過創(chuàng)建一個(gè)包裝對(duì)象,也就是裝飾來包裹真實(shí)的...

    chuyao 評(píng)論0 收藏0
  • 設(shè)計(jì)模式——裝飾模式

    摘要:裝飾者模式遵循了開閉原則,對(duì)擴(kuò)展開放,對(duì)修改關(guān)閉。但是在使用裝飾者模式的同時(shí)可能會(huì)引入大量小類,而且使用裝飾者模式除了實(shí)例化組件外,還要把組件包裝進(jìn)裝飾者,會(huì)使代碼顯得不易理解。 1. 簡(jiǎn)介 ??裝飾者模式是一種結(jié)構(gòu)型模式,它可以動(dòng)態(tài)的將責(zé)任附加到對(duì)象上,在擴(kuò)展功能方面,它比繼承更有彈性。裝飾者模式遵循了開閉原則,對(duì)擴(kuò)展開放,對(duì)修改關(guān)閉。??雖然在裝飾者模式中也使用了繼承,但是繼承只是...

    hoohack 評(píng)論0 收藏0
  • 代理模式裝飾模式

    摘要:簡(jiǎn)介代理模式和裝飾者模式是兩種常見的設(shè)計(jì)模式。這里通過構(gòu)造函數(shù)的參數(shù)將被代理對(duì)象傳入到代理中,也可以通過其它方式,如提供一個(gè)方法。下面是的代碼輸出首先依然是先創(chuàng)建一個(gè)需要被代理的對(duì)象,然后把它傳入到的構(gòu)造函數(shù)中。 簡(jiǎn)介 代理模式和裝飾者模式是兩種常見的設(shè)計(jì)模式。代理模式是為其它對(duì)象提供一種代理以控制對(duì)這個(gè)對(duì)象的訪問。在某些情況下,一個(gè)對(duì)象不適合或者不能直接引用另一個(gè)對(duì)象,而代理對(duì)象可以...

    NusterCache 評(píng)論0 收藏0
  • 美顏相機(jī)中的設(shè)計(jì)模式 —— 裝飾模式

    摘要:這是設(shè)計(jì)模式系列的第二篇,系列文章目錄如下用一句話總結(jié)那些殊途同歸的設(shè)計(jì)模式工廠策略模版方法美顏相機(jī)中的設(shè)計(jì)模式裝飾者模式幾乎所有的設(shè)計(jì)模式都是通過增加一層抽象來解決問題。 這是設(shè)計(jì)模式系列的第二篇,系列文章目錄如下: 用一句話總結(jié)那些殊途同歸的設(shè)計(jì)模式:工廠=?策略=?模版方法 美顏相機(jī)中的設(shè)計(jì)模式——裝飾者模式 幾乎所有的設(shè)計(jì)模式都是通過增加一層抽象來解決問題。 上一篇中提...

    anonymoussf 評(píng)論0 收藏0
  • JavaScript設(shè)計(jì)模式----裝飾模式

    摘要:聲明這個(gè)系列為閱讀設(shè)計(jì)模式與開發(fā)實(shí)踐曾探著一書的讀書筆記裝飾者模式的定義裝飾者模式能夠在不改變對(duì)象自身的基礎(chǔ)上,在程序運(yùn)行期間給對(duì)像動(dòng)態(tài)的添加職責(zé)。與繼承相比,裝飾者是一種更輕便靈活的做法。裝飾者模式的作用就是為對(duì)象動(dòng)態(tài)的加入某些行為。 聲明:這個(gè)系列為閱讀《JavaScript設(shè)計(jì)模式與開發(fā)實(shí)踐》 ----曾探@著一書的讀書筆記 裝飾者模式的定義: 裝飾者(decorator)模式能...

    rose 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<