裝飾模式(Dcorator)

裝飾模式(Dcorator)谅海,動(dòng)態(tài)地給一個(gè)對(duì)象添加一些額外的職責(zé),就增加功能來(lái)說(shuō)蹦浦,裝飾模式比生成子類(lèi)更為靈活扭吁。

主函數(shù)

public class main {
    public static void main(String[] args) {
        Person xc = new Person("小菜");

        System.out.println("\n第一種裝扮");

        Sneakers pqx = new Sneakers();
        BigTrouser kk = new BigTrouser();
        TShirts dtx = new TShirts();

        pqx.Decorate(xc);
        kk.Decorate(pqx);
        dtx.Decorate(kk);
        dtx.Show();

        System.out.println("\n第二種裝扮");

        LeatherShoes px = new LeatherShoes();
        Tie ld = new Tie();
        Suit xz = new Suit();

        px.Decorate(xc);
        ld.Decorate(px);
        xz.Decorate(ld);
        xz.Show();
    }
}

裝飾器父類(lèi)(頂級(jí)類(lèi))

public class Person {
    public Person() {

    }
    private String name;
    public Person(String name) {
        this.name = name;
    }

    public void Show() {
        System.out.println("裝扮的{"+name+"}");
    }
}

子類(lèi)

public class Finery extends Person {
    protected Person component;

    public void Decorate(Person component) {
        this.component = component;
    }

    @Override
    public void Show() {
        if(component != null)
            this.component.Show();
    }
}

孫子類(lèi)

public class Sneakers extends Finery {
    public void Show() {
        System.out.print("破球鞋 ");
        super.Show();
    }
}
public class BigTrouser extends Finery {
    public void Show() {
        System.out.print("垮褲 ");
        super.Show();
    }
}
public class Suit extends Finery {
    public void Show() {
        System.out.print("西裝 ");
        super.Show();
    }
}
public class Tie extends Finery {
    public void Show() {
        System.out.print("領(lǐng)帶 ");
        super.Show();
    }
}
public class TShirts extends Finery {
    public void Show() {
        System.out.print("大T恤 ");
        super.Show();
    }
}
public class LeatherShoes extends Finery {
    public void Show() {
        System.out.print("皮鞋 ");
        super.Show();
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子侥袜,更是在濱河造成了極大的恐慌蝌诡,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,817評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件枫吧,死亡現(xiàn)場(chǎng)離奇詭異浦旱,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)九杂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)颁湖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人例隆,你說(shuō)我怎么就攤上這事甥捺。” “怎么了镀层?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,354評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵镰禾,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我唱逢,道長(zhǎng)吴侦,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,498評(píng)論 1 284
  • 正文 為了忘掉前任坞古,我火速辦了婚禮妈倔,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘绸贡。我一直安慰自己盯蝴,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,600評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布听怕。 她就那樣靜靜地躺著捧挺,像睡著了一般。 火紅的嫁衣襯著肌膚如雪尿瞭。 梳的紋絲不亂的頭發(fā)上闽烙,一...
    開(kāi)封第一講書(shū)人閱讀 49,829評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音声搁,去河邊找鬼黑竞。 笑死,一個(gè)胖子當(dāng)著我的面吹牛疏旨,可吹牛的內(nèi)容都是我干的很魂。 我是一名探鬼主播,決...
    沈念sama閱讀 38,979評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼檐涝,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼遏匆!你這毒婦竟也來(lái)了法挨?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,722評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤幅聘,失蹤者是張志新(化名)和其女友劉穎凡纳,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體帝蒿,經(jīng)...
    沈念sama閱讀 44,189評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡荐糜,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,519評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了葛超。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片狞尔。...
    茶點(diǎn)故事閱讀 38,654評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖巩掺,靈堂內(nèi)的尸體忽然破棺而出偏序,到底是詐尸還是另有隱情,我是刑警寧澤胖替,帶...
    沈念sama閱讀 34,329評(píng)論 4 330
  • 正文 年R本政府宣布研儒,位于F島的核電站,受9級(jí)特大地震影響独令,放射性物質(zhì)發(fā)生泄漏端朵。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,940評(píng)論 3 313
  • 文/蒙蒙 一燃箭、第九天 我趴在偏房一處隱蔽的房頂上張望冲呢。 院中可真熱鬧,春花似錦招狸、人聲如沸敬拓。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,762評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)乘凸。三九已至,卻和暖如春累榜,著一層夾襖步出監(jiān)牢的瞬間营勤,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,993評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工壹罚, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留葛作,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,382評(píng)論 2 360
  • 正文 我出身青樓猖凛,卻偏偏與公主長(zhǎng)得像赂蠢,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子形病,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,543評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容

  • 設(shè)計(jì)模式基本原則 開(kāi)放-封閉原則(OCP)客年,是說(shuō)軟件實(shí)體(類(lèi)、模塊漠吻、函數(shù)等等)應(yīng)該可以拓展量瓜,但是不可修改。開(kāi)-閉原...
    西山薄涼閱讀 3,777評(píng)論 3 14
  • 設(shè)計(jì)模式匯總 一途乃、基礎(chǔ)知識(shí) 1. 設(shè)計(jì)模式概述 定義:設(shè)計(jì)模式(Design Pattern)是一套被反復(fù)使用绍傲、多...
    MinoyJet閱讀 3,922評(píng)論 1 15
  • 1 場(chǎng)景問(wèn)題# 1.1 復(fù)雜的獎(jiǎng)金計(jì)算## 考慮這樣一個(gè)實(shí)際應(yīng)用:就是如何實(shí)現(xiàn)靈活的獎(jiǎng)金計(jì)算。 獎(jiǎng)金計(jì)算是相對(duì)復(fù)雜...
    七寸知架構(gòu)閱讀 3,979評(píng)論 4 67
  • 設(shè)計(jì)原則: 少用繼承耍共,多用組合 類(lèi)應(yīng)該對(duì)擴(kuò)展開(kāi)放烫饼,對(duì)修改關(guān)閉 目錄 本文的結(jié)構(gòu)如下: 什么是裝飾者模式 為什么要用...
    w1992wishes閱讀 1,157評(píng)論 0 7
  • 工廠模式類(lèi)似于現(xiàn)實(shí)生活中的工廠可以產(chǎn)生大量相似的商品,去做同樣的事情试读,實(shí)現(xiàn)同樣的效果;這時(shí)候需要使用工廠模式杠纵。簡(jiǎn)單...
    舟漁行舟閱讀 7,726評(píng)論 2 17