千家信息网

Java的代理模式示例分析

发表于:2024-11-22 作者:千家信息网编辑
千家信息网最后更新 2024年11月22日,这篇文章主要讲解了"Java的代理模式示例分析",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Java的代理模式示例分析"吧!定义代理模式(Proxy
千家信息网最后更新 2024年11月22日Java的代理模式示例分析

这篇文章主要讲解了"Java的代理模式示例分析",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Java的代理模式示例分析"吧!

    定义

    代理模式(Proxy Parttern) 为一个对象提供一个替身,来控制这个对象的访问,即通过代理对象来访问目标对象,这样做的话好处是可以在目标对象实现的基础上,进行额外的功能的扩展。

    案例

    需求

    苹果公司通过苹果代理商来卖手机

    方案:静态代理模式

    定义抽象接口类,该类在代理模式中扮演的是一个抽象功能的角色,该案例中就是把出售手机抽象为了一个接口

    /** * 售卖手机的接口(代理模式--抽象角色) * @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();}

    定义苹果手机公司类,该类在代理模式中扮演的是一个目标角色,实现了IPhone接口,重写出售手机的方法

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

    定义代理类,通过代理类进而调用目标类的出售手机的方法,并加上自己的扩展功能

    /** * 代理商(代理模式--代理角色) * @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("代理商正在循环播放广告,赚取广告商广告费");        System.out.println("代理商正在推荐自己的电子周边产品,赚取费用");        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();    }}

    查看结果

    感谢各位的阅读,以上就是"Java的代理模式示例分析"的内容了,经过本文的学习后,相信大家对Java的代理模式示例分析这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

    0