温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Java的代理模式示例分析

发布时间:2022-02-23 09:15:40 来源:亿速云 阅读:103 作者:iii 栏目:开发技术

这篇文章主要讲解了“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("代理商正在卖出苹果手机,赚取差价");
        }
    }

    代理商赚钱的奥秘尽在下图红框中,卖出了苹果手机赚钱,卖出了其他东西赚钱,广告费也赚钱

    Java的代理模式示例分析

    定义测试类

    /**
     * 测试类
     * @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的代理模式示例分析”的内容了,经过本文的学习后,相信大家对Java的代理模式示例分析这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

    向AI问一下细节

    免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

    AI