java靜態(tài)代理模式

簡(jiǎn)述:
為其他對(duì)象提供一種代理厕鹃,以控制對(duì)這個(gè)對(duì)象的訪問(wèn)。
代理對(duì)象起到中介的作用乍丈,可以去掉某些功能剂碴,也可以增加某些功能。

常見(jiàn)的代理模式:
虛擬代理:
當(dāng)我們?cè)跒g覽帖子的時(shí)候轻专,很多帖子的圖片剛開(kāi)始都是默認(rèn)網(wǎng)站logo忆矛,當(dāng)圖片加載完成的時(shí)候才會(huì)去顯示出來(lái),在圖片被加載的時(shí)候请垛,也不會(huì)影響我們?nèi)タ次淖帧?/p>

代理模式分為靜態(tài)代理和動(dòng)態(tài)代理催训。

靜態(tài)代理:
代理和被代理對(duì)象在代理之前是確定的洽议,他們都實(shí)現(xiàn)相同的接口或者繼承相同的抽象類(lèi)。


下面我們用靜態(tài)代理做一個(gè)小Demo
假如我們有一輛車(chē)漫拭,然后我們通過(guò)靜態(tài)代理來(lái)記錄這輛車(chē)行駛的時(shí)間绞铃。

首先寫(xiě)一個(gè)汽車(chē)的接口,增加行駛的方法:

public interface Moveable {

    //增加一個(gè)行駛的接口
    void move();
}

創(chuàng)建汽車(chē)類(lèi)嫂侍,實(shí)現(xiàn)move方法:

public class Car implements Moveable {

    @Override
    public void move() {

        //實(shí)現(xiàn)開(kāi)車(chē),開(kāi)車(chē)時(shí)間為1秒鐘
        try {
            Thread.sleep(new Random().nextInt(1000));
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}

最后我們創(chuàng)建一個(gè)Car2類(lèi)儿捧,繼承Car類(lèi),重寫(xiě)move()方法挑宠,并且在實(shí)現(xiàn)的前后增加業(yè)務(wù):

    @Override
    public void move() {
        long starttime = System.currentTimeMillis();
        System.out.println("汽車(chē)開(kāi)始行駛...");
        super.move();
        long endtime = System.currentTimeMillis();
        System.out.println("汽車(chē)結(jié)束行駛...");
        System.out.println("汽車(chē)行駛時(shí)間:" + (endtime - starttime) + "毫秒菲盾!");
    }

    public static void main(String[] args) {
        Moveable m = new Car2();
        m.move();
    }
}

輸出結(jié)果:

汽車(chē)開(kāi)始行駛...
汽車(chē)結(jié)束行駛...
汽車(chē)行駛時(shí)間:868毫秒!

以上也就是用繼承的方法各淀,簡(jiǎn)單的實(shí)現(xiàn)靜態(tài)代理懒鉴,在汽車(chē)行駛的時(shí)候增加記錄時(shí)間的業(yè)務(wù),但不推薦用繼承的方法實(shí)現(xiàn)代理碎浇,如果業(yè)務(wù)邏輯很多的話(huà)临谱,代碼也會(huì)無(wú)限的膨脹下去。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末奴璃,一起剝皮案震驚了整個(gè)濱河市悉默,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌苟穆,老刑警劉巖抄课,帶你破解...
    沈念sama閱讀 216,591評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異雳旅,居然都是意外死亡跟磨,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)攒盈,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)抵拘,“玉大人,你說(shuō)我怎么就攤上這事型豁〗┲耄” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,823評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵偷遗,是天一觀的道長(zhǎng)墩瞳。 經(jīng)常有香客問(wèn)我驼壶,道長(zhǎng)氏豌,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,204評(píng)論 1 292
  • 正文 為了忘掉前任热凹,我火速辦了婚禮泵喘,結(jié)果婚禮上泪电,老公的妹妹穿的比我還像新娘。我一直安慰自己纪铺,他們只是感情好相速,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,228評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著鲜锚,像睡著了一般突诬。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上芜繁,一...
    開(kāi)封第一講書(shū)人閱讀 51,190評(píng)論 1 299
  • 那天旺隙,我揣著相機(jī)與錄音,去河邊找鬼骏令。 笑死蔬捷,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的榔袋。 我是一名探鬼主播周拐,決...
    沈念sama閱讀 40,078評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼凰兑!你這毒婦竟也來(lái)了妥粟?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,923評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤吏够,失蹤者是張志新(化名)和其女友劉穎罕容,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體稿饰,經(jīng)...
    沈念sama閱讀 45,334評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡锦秒,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,550評(píng)論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了喉镰。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片旅择。...
    茶點(diǎn)故事閱讀 39,727評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖侣姆,靈堂內(nèi)的尸體忽然破棺而出生真,到底是詐尸還是另有隱情,我是刑警寧澤捺宗,帶...
    沈念sama閱讀 35,428評(píng)論 5 343
  • 正文 年R本政府宣布柱蟀,位于F島的核電站,受9級(jí)特大地震影響蚜厉,放射性物質(zhì)發(fā)生泄漏长已。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,022評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望术瓮。 院中可真熱鬧康聂,春花似錦、人聲如沸胞四。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,672評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)辜伟。三九已至氓侧,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間导狡,已是汗流浹背甘苍。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,826評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留烘豌,地道東北人载庭。 一個(gè)月前我還...
    沈念sama閱讀 47,734評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像廊佩,于是被迫代替她去往敵國(guó)和親囚聚。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,619評(píng)論 2 354