一、介绍
客户端并不直接调用实际的对象,而是通过调用代理,来间接调用实际的对象
二、使用
1.接口
public interface IRunner { void run(); }
2.实现类
public class Runner implements IRunner { @Override public void run() { System.out.println("Runner is running..."); } }
3.代理类
public class ProxyClass implements IRunner { private IRunner runner; public ProxyClass(IRunner runner){ this.runner = runner; } @Override public void run() { System.out.println("热身..."); runner.run(); System.out.println("拉伸..."); } }
4.测试类
public class Test { public static void main(String[] args) { IRunner runner = new Runner(); ProxyClass proxyClass = new ProxyClass(runner); proxyClass.run(); } }
5.输出
三、缺点
每当有一个实现类需要被代理,都需要创建一个代理类,不利于维护;