溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Java的代理模式示例分析

發(fā)布時(shí)間:2022-02-23 09:15:40 來源:億速云 閱讀:103 作者:iii 欄目:開發(fā)技術(shù)

這篇文章主要講解了“Java的代理模式示例分析”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Java的代理模式示例分析”吧!

    定義

    代理模式(Proxy Parttern) 為一個(gè)對(duì)象提供一個(gè)替身,來控制這個(gè)對(duì)象的訪問,即通過代理對(duì)象來訪問目標(biāo)對(duì)象,這樣做的話好處是可以在目標(biāo)對(duì)象實(shí)現(xiàn)的基礎(chǔ)上,進(jìn)行額外的功能的擴(kuò)展。

    案例

    需求

    蘋果公司通過蘋果代理商來賣手機(jī)

    方案:靜態(tài)代理模式

    定義抽象接口類,該類在代理模式中扮演的是一個(gè)抽象功能的角色,該案例中就是把出售手機(jī)抽象為了一個(gè)接口

    /**
     * 售賣手機(jī)的接口(代理模式——抽象角色)
     * @author:liyajie
     * @createTime:2022/2/22 14:42
     * @version:1.0
     */
    public interface IPhone {
    
        /**
         * 出售手機(jī)
         * @author: liyajie
         * @date: 2022/2/22 14:44
         * @param
         * @return void
         * @exception:
         * @update:
         * @updatePerson:
         **/
        void sellPhone();
    }

    定義蘋果手機(jī)公司類,該類在代理模式中扮演的是一個(gè)目標(biāo)角色,實(shí)現(xiàn)了IPhone接口,重寫出售手機(jī)的方法

    /**
     * 蘋果公司(代理模式——目標(biāo)角色)
     * @author:liyajie
     * @createTime:2022/2/22 14:46
     * @version:1.0
     */
    public class TargetPhone implements IPhone {
        @Override
        public void sellPhone() {
            System.out.println("蘋果公司正在出售手機(jī)");
        }
    }

    定義代理類,通過代理類進(jìn)而調(diào)用目標(biāo)類的出售手機(jī)的方法,并加上自己的擴(kuò)展功能

    /**
     * 代理商(代理模式——代理角色)
     * @author:liyajie
     * @createTime:2022/2/22 14:50
     * @version:1.0
     */
    public class ProxyPhone implements IPhone {
    
        private IPhone iPhone;
    
        public ProxyPhone(IPhone iPhone){
            this.iPhone = iPhone;
        }
    
        @Override
        public void sellPhone() {
            System.out.println("代理商正在循環(huán)播放廣告,賺取廣告商廣告費(fèi)");
            System.out.println("代理商正在推薦自己的電子周邊產(chǎn)品,賺取費(fèi)用");
            iPhone.sellPhone();
            System.out.println("代理商正在賣出蘋果手機(jī),賺取差價(jià)");
        }
    }

    代理商賺錢的奧秘盡在下圖紅框中,賣出了蘋果手機(jī)賺錢,賣出了其他東西賺錢,廣告費(fèi)也賺錢

    Java的代理模式示例分析

    定義測(cè)試類

    /**
     * 測(cè)試類
     * @author:liyajie
     * @createTime:2022/2/22 14:55
     * @version:1.0
     */
    public class Test {
        public static void main(String[] args) {
            TargetPhone targetPhone = new TargetPhone();
            ProxyPhone proxyPhone = new ProxyPhone(targetPhone);
            proxyPhone.sellPhone();
        }
    }

    查看結(jié)果

    Java的代理模式示例分析

    感謝各位的閱讀,以上就是“Java的代理模式示例分析”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)Java的代理模式示例分析這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

    向AI問一下細(xì)節(jié)

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

    AI