设计模式之代理模式

来源:互联网 发布:18*进入编程 编辑:程序博客网 时间:2024/06/16 13:01

一 proxy

这里写图片描述
这里写图片描述
这里写图片描述

二 动态代理

这里写图片描述

public class StarHandler implements InvocationHandler {    Star realStar;    public StarHandler(Star realStar) {        this.realStar = realStar;    }    public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {        Object object = null;        System.out.println("真正的方法执行前!");        System.out.println("面谈,签合同,预付款,订机票");        if (method.getName().equals("sing")) {            object = method.invoke(this.realStar, args);        }        System.out.println("真正的方法执行后!");        System.out.println("收尾款");        return object;    }}
import java.lang.reflect.Proxy;public class Client {    public Client() {    }    public static void main(String[] args) {        Star realStar = new RealStar();        StarHandler handler = new StarHandler(realStar);        Star proxy = (Star)Proxy.newProxyInstance(ClassLoader.getSystemClassLoader(), new Class[]{Star.class}, handler);        proxy.sing();    }}

动态代理比较重要和常用