什么是代理设计模式?就是一我的或者一个机构表明另外一我的或者另外一个机构采起行动。在一些状况下,一个客户不想或者不可以直接引用一个对象,而代理对象能够在客户端和目标对象以前起到中介的做用。
java
生活中的例子:过年加班比较忙,没空去买火车票,这时能够打个电话到附近的票务中心,叫他们帮你买张回家的火车票,固然这会附加额外的劳务费。但要清楚票务中心本身并不卖票,只有火车站才真正卖票,票务中心卖给你的票实际上是经过火车站实现的。这点很重要!设计模式
如何实现代理呢?首先被代理对象和代理对象都须要实现同一个接口,其次,代理对象要包含被代理对象的引用。那么,接下来咱们用一个程序演示一下实现过程。ide
定义一个接口:测试
public interface person { void buyTicket(); }
实现上面接口的被代理类this
public class BusyMan implements person{ @Override public void buyTicket() { System.out.println("买票"); } }
代理类spa
public class HelpMan implements person { person p; public HelpMan(person p) { this.p = p; } @Override public void buyTicket() { System.out.println("×××"); p.buyTicket(); } }
测试类设计
public class TestProxy { public static void main(String[] args) { person p=new BusyMan(); new HelpMan(p).buyTicket(); } }
运行结果代理
××× 买票
经过程序能够看到,这个很忙的BusyMan并无真的本身买票,而是经过了一个HelpMan来实现这个买票的功能。这就是代理设计模式,也被称为静态代理。固然还有动态代理,不过先不介绍了。。。对象