溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java代理模式如何實現(xiàn)

發(fā)布時間:2022-01-05 11:39:52 來源:億速云 閱讀:114 作者:iii 欄目:大數(shù)據(jù)

這篇文章主要介紹“Java代理模式如何實現(xiàn)”,在日常操作中,相信很多人在Java代理模式如何實現(xiàn)問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Java代理模式如何實現(xiàn)”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

       什么是代理模式呢?我很忙,忙的沒空理你,那你要找我呢就先找我的代理人吧,那代理人總要知道被代理人能做哪些事情不能做哪些事情吧,那就是兩個人具備同一個接口,代理人雖然不能干活,但是被代理的人能干活呀。 

      比如西門慶找潘金蓮,那潘金蓮不好意思答復呀,咋辦,找那個王婆做代理,表現(xiàn)在程序上時這樣的:

      先定義一種類型的女人:

package com.cbf4life.proxy;
/**
*定義一種類型的女人,王婆和潘金蓮都屬于這個類型的女人
*/

public interface KindWomen {
    //這種類型的女人能做什么事情呢?
    public void makeEyesWithMan();	//拋媚眼
    public void happyWithMan();	//happy what? You know that!
}

一種類型嘛,那肯定是接口,然后定義潘金蓮:

package com.cbf4life.proxy;

/**
*定一個潘金蓮是什么樣的人
*/

public class PanJinLian implements KindWomen {
    public void happyWithMan() {
    System.out.println("潘金蓮在和男人做那個.....");
    }

    public void makeEyesWithMan() {
        System.out.println("潘金蓮拋媚眼");
    }

}

再定一個丑陋的王婆:

package com.cbf4life.proxy;
/**
*王婆這個人老聰明了,她太老了,是個男人都看不上,
*但是她有智慧有經(jīng)驗呀,她作為一類女人的代理!
*/
public class WangPo implements KindWomen { private KindWomen kindWomen;

        public WangPo(){ //默認的話,是潘金蓮的代理
            this.kindWomen = new PanJinLian();
        }

        //她可以是KindWomen的任何一個女人的代理,只要你是這一類型
        public WangPo(KindWomen kindWomen){
            this.kindWomen = kindWomen;
        }

        public void happyWithMan() {
            this.kindWomen.happyWithMan();	//自己老了,干不了,可以讓年輕的代替
        }

        public void makeEyesWithMan() {
            this.kindWomen.makeEyesWithMan();	//王婆這么大年齡了,誰看她拋媚眼?!
        }
}

兩個女主角都上場了,男主角也該出現(xiàn)了:

package com.cbf4life.proxy;
/**
*定義一個西門慶,這人色中餓鬼
*/

public class XiMenQing {
/*

*水滸里是這樣寫的:西門慶被潘金蓮用竹竿敲了一下難道,癡迷了,
*被王婆看到了, 就開始撮合兩人好事,王婆作為潘金蓮的代理人
*收了不少好處費,那我們假設一下:
*如果沒有王婆在中間牽線,這兩個不要臉的能成嗎?難說的很!
*/

     public static void main(String[] args) {

        //把王婆叫出來
        WangPo wangPo = new WangPo();
       //然后西門慶就說,我要和潘金蓮happy,然后王婆就安排了西門慶丟筷子的那出戲:
        wangPo.makeEyesWithMan(); //看到?jīng)],雖然表面上時王婆在做,實際上爽的是潘金蓮 wangPo.happyWithMan(); }

}

       那這就是活生生的一個例子,通過代理人實現(xiàn)了某種目的,如果真去掉王婆這個中間環(huán)節(jié),直接是西門慶和潘金蓮勾搭,估計很難成就武松殺嫂事件。

      那我們再考慮一下,水滸里還有沒有這類型的女人?有,盧俊義的老婆賈氏(就是和那個固管家茍合的那個),這名字起的:“假使”,那我們也讓王婆做她的代理:

把賈氏素描出來:  

package com.cbf4life.proxy;
public class JiaShi implements KindWomen {

    public void happyWithMan() {
        System.out.println("賈氏正在Happy中......");
    }

    public void makeEyesWithMan() {
        System.out.println("賈氏拋媚眼");
    }
}
西門慶勾賈氏:


package com.cbf4life.proxy;

/**
*定義一個西門慶,這人色中餓鬼
*/
public class XiMenQing {
    public static void main(String[] args) {
    //改編一下歷史,賈氏被西門慶勾走:
        JiaShi jiaShi = new JiaShi();
        WangPo wangPo = new WangPo(jiaShi); //讓王婆作為賈氏的代理人
        wangPo.makeEyesWithMan();
        wangPo.happyWithMan();
   }
}

到此,關于“Java代理模式如何實現(xiàn)”的學習就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關知識,請繼續(xù)關注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI