代理模式指的是为其他对象提供一种代理,并以控制对这个对象的访问。

下面代理模式的一个简单示意图:

代理类和实现类都需要实现一个共同的接口,代理类通过调用实现类来完成具体的操作,下面来举一个"借刀杀人"的例子来说明一下这种关系:

首先定义一个接口:

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();
	}


更多推荐