代理模式指的是为其他对象提供一种代理,并以控制对这个对象的访问。
下面代理模式的一个简单示意图:
代理类和实现类都需要实现一个共同的接口,代理类通过调用实现类来完成具体的操作,下面来举一个"借刀杀人"的例子来说明一下这种关系:
首先定义一个接口:
public interface Killers {
public void killPeople();
public void getMoney();
}
public class BackBoss implements Killers{
private String name="";
public BackBoss(String name) {
super();
this.name = name;
}
public void killPeople() {
// TODO Auto-generated method stub
System.out.println(this.name+"计划干掉小刚");
}
public void getMoney() {
// TODO Auto-generated method stub
System.out.println(this.name+"获得了小刚的100W遗产");
}
}
幕后黑手打算干一些坏事,但是又不想自己去解决,所以他请来下面的realKiller来做坏事
public class realKiller implements Killers {
private Killers backboss=null;
public realKiller(Killers backboss) {
super();
this.backboss = backboss;
}
public void killPeople() {
// TODO Auto-generated method stub
backboss.killPeople();
}
public void getMoney() {
// TODO Auto-generated method stub
backboss.getMoney();
}
}
下面给出主程序:
public static void main(String[] args)
{
// TODO Auto-generated method stub
Killers backBoss=new BackBoss("小明");
Killers realKiller=new realKiller(backBoss);
realKiller.killPeople();
realKiller.getMoney();
}