• java 代理


    //用户操作的接口

    public interface User {

        public void add();
        
        public void update();
    }

    //用户接口的实现类

    public class UserImpl implements User {

        @Override
        public void add() {
            // TODO Auto-generated method stub
            System.out.println("用户添加");

        }

        @Override
        public void update() {
            // TODO Auto-generated method stub
            System.out.println("用户修改");

        }

    }

    //现在有这种情况出现,在某些地方使用UserImpl的方法是需要在前面打印“xx 方法调用之前。。。。”,"xx方法调用结束。。。",而有些地方不需要,怎样来解决这些问题呢,接下来,我们用代理来解决这个问题。

    //这就是userImpl的代理类,该模式成功解决了上述问题。

    public class ProxyT implements User  {
        
        private UserImpl userImpl;

        ProxyT(UserImpl userImpl) {
            //super();
            this.userImpl = userImpl;
        }

        @Override
        public void add() {
            // TODO Auto-generated method stub
            System.out.println(" add 方法调用之前。。。。");
            userImpl.add();
            System.out.println("add 方法调用结束。。。。");
        }

        @Override
        public void update() {
            // TODO Auto-generated method stub
            System.out.println("update 方法调用之前。。。。");
            userImpl.update();
            System.out.println(" update 方法调用结束。。。。");
        }
        public class ProxyTest {
    //代理类的测试方法
        @Test
        public void test(){
            
            //new UserImpl();
            ProxyT  proxy=new ProxyT(new UserImpl());
            proxy.add();
            proxy.update();
        }
    }
        //可能有人会这么想了,如果想要多个类,比如person,tree等等的,是不是要每个类都要对应的代理类呢,象ProxyT,这不是很繁琐吗?不要急,在接下来的博客中,我会分享动态代理,来解决上述问题。

    }

  • 相关阅读:
    如何把样例从文件中输入程序
    蓝桥杯--高僧斗法(变形尼姆博弈)
    tensorflow笔记(北大网课实战)
    深度学习笔记
    尼姆博弈
    并查集
    蓝桥杯算法训练--指针
    NumPy笔记:均匀分布与正态分布
    NumPy学习:创建ndarray数组(linespace,arange,uniform,normal)
    NumPy笔记:数组去重
  • 原文地址:https://www.cnblogs.com/liuquande/p/3803995.html
Copyright © 2020-2023  润新知