静态代理模式:
即代理类和被代理类要实现同一个接口,由代理类来实现被代理类想要做的事情。
通俗来讲:比如你要结婚,你的目的就是结婚,然而婚庆公司可以帮你完成这一目的,并且还可以帮你布置现场,主持婚礼等一系列其他的事情,在这里,你就是被代理对象,而婚庆公司就是代理对象。哈哈哈,这样是否明白,话不多说,上代码:
代码演示:
1.定义一个结婚的接口
public interface Married { void drink(); }
2.定义一个实现类(具体结婚对象,也就是被代理对象)
public class Man implements Married{ @Override public void drink() { System.out.println("结婚需要喝酒"); } }
3.代理类
public class MarriedProxy implements Married { private Married married; public MarriedProxy(Married married) { this.married = married; } @Override public void drink() { // 还可以做一些其他事情 System.out.println("布置现场"); // 执行控制业务 married.drink(); } }
测试:
public class Test1 { public static void main(String[] args) { Married married = new Man(); MarriedProxy proxy = new MarriedProxy(married); proxy.drink(); } }