欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java代理模式的示例詳解

 更新時間:2022年02月22日 17:05:27   作者:溫故知新之java  
代理模式(Proxy Parttern)為一個對象提供一個替身,來控制這個對象的訪問,即通過代理對象來訪問目標對象。本文將通過示例詳細講解一下這個模式,需要的可以參考一下

定義

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

案例

需求

蘋果公司通過蘋果代理商來賣手機

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

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

/**
 * 售賣手機的接口(代理模式——抽象角色)
 * @author:liyajie
 * @createTime:2022/2/22 14:42
 * @version:1.0
 */
public interface IPhone {

    /**
     * 出售手機
     * @author: liyajie
     * @date: 2022/2/22 14:44
     * @param
     * @return void
     * @exception:
     * @update:
     * @updatePerson:
     **/
    void sellPhone();
}

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

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

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

/**
 * 代理商(代理模式——代理角色)
 * @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)播放廣告,賺取廣告商廣告費");
        System.out.println("代理商正在推薦自己的電子周邊產(chǎn)品,賺取費用");
        iPhone.sellPhone();
        System.out.println("代理商正在賣出蘋果手機,賺取差價");
    }
}

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

定義測試類

/**
 * 測試類
 * @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é)果

總結(jié)

該方案采用了靜態(tài)代理的方式:

優(yōu)勢:可以在不改變目標對象功能的前提下,通過代理對象對目標對象功能進行擴展

劣勢:不利于程序的擴展,需要同時維護目標對象和代理對象,程序中會產(chǎn)生大量的代理類,維護成本高

到此這篇關于Java代理模式的示例詳解的文章就介紹到這了,更多相關Java代理模式內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論