zoukankan      html  css  js  c++  java
  • 代理模式(动态代理)

    动态代理。就是不用自己写代理类,只要实现接口就行了。

    动态代理,这里介绍两种:jdk and cglib

    第一个jdk

    //一个接口类
    public interface Book{
        void read(String name);
    }
    
    //一个实现类
    public class BookImpl implements Book{
        @Override
        public void read(String name){
            System.out.println(name);
        }
    }
    
    //实现一个一个代理类接口
    public class MyInvocationHandler implements InvocationHandler{
        private Object target;
        public MyInvocationHandler(Object target){
            this.target =target ;
        }
        @Override
        public Object invoke(Object o,Method method,Object[] args)throws Throwable{
        return method.invoke(target,args);
        }
    }
    
    //测试方法
    Public class Main{
    public static void main(String args[]){
        Book bookImpl = new BookImpl;
        Object obj = Proxy.newProxyInstance(bookImpl.getClass,
        )book,getClss().getInterface(),new myInvocation
    
    }

    cglib

    //一个实现类
    public class BookImpl {
        @Override
        public void read(String name){
            System.out.println(name);
        }
    }
    
    //实现一个一个代理类接口
    public class MyInsterceptor implements MethodIntao{
        private Object target;
        public MyInvocationHandler(Object target){
            this.target =target ;
        }
        @Override
        public Object intercept(Object o,Method method,Object[] args,MethodProxy myInterce)throws Throwable{
        return method.invoke(target,args);
        }
    }
    
    //测试方法
    Public class Main{
    public static void main(String args[]){
        BookImpl book = new BookImpl();
        Enhancer enhancer = new Enhancer();
        enhancer.setSuperClass (book.getClass);
        enhancer.setCallback(new MyInterceptor(book))
        BookImpl b = (BookImpl)enhancer.create();
    }
  • 相关阅读:
    red and black(BFS)
    G
    D
    new word
    CSS Layout
    G
    CSS
    组合数学-母函数
    组合数学-卡特兰数
    cf1144G 将串分解成单调递增和递减子串(贪心)
  • 原文地址:https://www.cnblogs.com/LixiaoFeng1650062546/p/11493787.html
Copyright © 2011-2022 走看看