亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

裝飾器模式

系統(tǒng) 2025 0
【轉(zhuǎn)】http://www.iteye.com/topic/317132
裝飾器涉及四個(gè)名詞
1、接口或者抽象基類
2、被裝飾對(duì)象,也就是一個(gè)簡(jiǎn)單的實(shí)現(xiàn)了1中提到的接口或者抽象基類的實(shí)現(xiàn)類。
3、裝飾對(duì)象,就是去裝飾被裝飾對(duì)象的對(duì)象
4、繼承裝飾對(duì)象類的子類,也就是具體的裝飾器類了。
說(shuō)了這么多,估計(jì)你基本跟沒(méi)聽(tīng)說(shuō)過(guò)一樣。好了,來(lái)段代碼,看看

//這是第一類名詞
public interface IDecorate
{
public void sayHello();
}

//這是第二類名詞
public class DecorateImpl implements IDecorate
{
public void sayHello()
{
System.out.print("Hello");
}
}

//這是第三類名詞,真正的裝飾器就在這里開(kāi)始了,也是所有欲實(shí)現(xiàn)裝飾器的父類
public class Decorate implements IDecorate
{
//聲明一個(gè)被裝飾的對(duì)象
private IDecorate decorate;

//被裝飾對(duì)象從裝飾器的構(gòu)造函數(shù)中傳進(jìn)來(lái)(必須這樣做)
public Decorate(IDecorate decorate)
{
this.decorate = decorate;
}

//在基類裝飾器中只調(diào)用被裝飾對(duì)象的方法
public void sayHello()
{
decorate.sayHello();
}
}
再對(duì)這個(gè)裝飾器的基類說(shuō)明一下,在每個(gè)裝飾器模式中,這個(gè)類的結(jié)構(gòu)基本不變
或者說(shuō)這上面是裝飾器第三類名詞中最小的類了,必須有以上定義的這些元素。

//這是第四類名詞,裝飾就看這里了
public class SimpleDecorate extends Decorate
{
public Decorate(IDecorate decorate)
{
super(decorate);
}

//開(kāi)裝飾了哦。。。
public void sayHello()
{
//在原來(lái)的方法中加入了sayChina方法。
sayChina();

super.sayHello();

//在原來(lái)的方法中加入了sayWorld方法。
sayWorld();
}

public void sayChina()
{
System.out.print("China, ");
}

public void sayWorld()
{
System.out.print(" World!\n");
}
}

//來(lái),測(cè)試一下
public void TestDecorate()
{
//不使用裝飾器
public static void unUseDecorate(IDecorate decorate)
{
//輸出 Hello
decorate.sayHello();
}

//使用裝飾器
public static void useDecorate(IDecorate decorate)
{
IDecorate simpleDecorate = new SimpleDecorate(decorate);

//要調(diào)用裝飾了的方法
//輸出 China, Hello World!
simpleDecorate.sayHello();
}

public static void main(String[] argv)
{
IDecorate decorate = new DecorateImpl();
}
}
//是不是發(fā)現(xiàn),原來(lái)只輸出的hello的方法被裝飾后,在其前和其后分別輸出了china和world啦。
裝飾器模式

看到裝飾器的威力了吧,把原來(lái)不變的方法改變了。那我們就來(lái)談?wù)勊氖褂脠?chǎng)景吧:
1、裝飾器模式主要裝飾供外部調(diào)用的接口方法,如果一個(gè)接口方法只是提供給內(nèi)部調(diào)用,則不能使用該模式。
2、裝飾器模式主要裝飾可能要改變的接口方法,如果類中的某種行為在將來(lái)可能發(fā)生變化,而你又懶得去改變
?? 原來(lái)的類,那么就可以考慮使用裝飾器模式了。

裝飾器模式


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 九七影院97影院理论片 | 亚洲日比视频 | 久草免费在线观看视频 | 国产在线观看美女福利精 | 999精品在线| 欧美a在线观看 | 国产成人aa在线观看视频 | 97超级碰碰碰碰精品 | 国产在线麻豆一区二区 | 欧美激情精品久久久久久不卡 | 秘密影院久久综合亚洲综合 | 激情综合五月亚洲婷婷 | 久久久91 | 中国女人精69xxxxxx视频 | 欧美成人免费香蕉 | 欧美日韩一二三区免费视频观看 | 四虎永久网址在线观看 | 久久狠狠色狠狠色综合 | 你懂得国产| 宅男在线看片 | 四虎国产精品永久地址48 | 久久中文字幕免费视频 | 国产激情一级毛片久久久 | 亚洲精品国产suv一区88 | 狠狠操操| 四虎精品影院在线观看视频 | 亚洲欧美精品成人久久91 | 久久精品视频1 | 日韩 亚洲 中文 图片 小说 | 亚洲精品欧美精品 | 国产九九在线观看播放 | 三上悠亚在线一区 | 国产精品久久久久不卡绿巨人 | 国产欧美日韩图片一区二区 | 91专区在线观看 | 国产高清不卡一区二区三区 | 日韩中文字幕在线看 | 久久伊人一区二区三区四区 | 亚洲国产一区在线二区三区 | 男人影院在线 | 亚洲精品视频久久久 |