zoukankan      html  css  js  c++  java
  • 代理全家福

    静态代理

    /**
     * 挣钱
     */
    public interface MakeMoney {
    
        void makeMoney();
    }
    public class Boss implements MakeMoney {
    
        @Override
        public void makeMoney() {
            System.out.println("老板想挣钱");
        }
    }
    public class Employee implements MakeMoney {
    
        private MakeMoney boss;
    
        public Employee(MakeMoney boss) {
            this.boss = boss;
        }
    
        @Override
        public void makeMoney() {
            System.out.println("员工在干活");
            boss.makeMoney();
        }
    }

    Java动态代理

    public class Employee implements InvocationHandler {
    
        private MakeMoney boss;
    
        public Employee(MakeMoney boss) {
            this.boss = boss;
        }
    
        public MakeMoney proxy() {
            return (MakeMoney) Proxy.newProxyInstance(boss.getClass().getClassLoader(), boss.getClass().getInterfaces(),
                    this);
        }
    
        @Override
        public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
            System.out.println("员工干活");
            return method.invoke(boss, args);
        }
    }

     CGLib

    public class MakeMoneyImpl implements MethodInterceptor {
    
        private MakeMoney target;
    
        public MakeMoney getInstance(MakeMoney target) {
            this.target = target;
            Enhancer enhancer = new Enhancer();
            enhancer.setSuperclass(target.getClass());
            enhancer.setCallback(this);
    
            return (MakeMoney) enhancer.create();
        }
    
        @Override
        public Object intercept(Object obj, Method method, Object[] args, MethodProxy proxy) throws Throwable {
            System.out.println("员工在干活");
            proxy.invokeSuper(obj, args);
    
            return null;
        }
    }
  • 相关阅读:
    Java实现Http请求的常用方式
    Java中Map和Object的互相转换方式
    java中过多if-else分支语句的优化方案
    将一个数组,以特定的字符拼接成字符串
    括号匹配算法
    面试题随笔1
    Docker run 的一些简单命令
    集群,负载均衡,分布式的区别
    Docker 容器的常用命令
    web应用常用的CURL基本命令
  • 原文地址:https://www.cnblogs.com/yixiu868/p/14961437.html
Copyright © 2011-2022 走看看