package com.example.demo;
/**
* @Description 接口的应用:代理模式
* 静态代理:每个接口对应一个代理类,静态的去代理每个接口的实现类
* 动态代理:不同的接口对应同一个代理类,动态的去代理不同接口的实现类
* (动态的创建代理类对象)
* @Auther guofeng.xie
* @Date 2020/10/11 20:14
*/
public class TestProxy {
public static void main(String[] args) {
//创建代理类对象
ProxyExample proxyExample = new ProxyExample();
//调用代理类的方法,实际执行的是被代理类的方法
proxyExample.action();
}
}
interface Example{
void action();
}
//代理类
class ProxyExample implements Example{
Example exa;
public ProxyExample() {
System.out.println("代理类创建成功~~");
exa = new ExampleImpl();
}
@Override
public void action() {
System.out.println("代理类开始执行~~");
exa.action();
System.out.println("代理类执行结束~~");
}
}
//被代理类
class ExampleImpl implements Example{
@Override
public void action() {
System.out.println("被代理类开始执行~~");
System.out.println("具体的操作~~");
System.out.println("被代理类执行完毕~~");
}
}