代理模式 - 静态

代理模式有较委托模式, 就是委托人委托代理做什么事情。
代理模式分静态和动态两种。 先讲静态的, 这个比较简单。

我们以“幕后黑手雇职业杀手+枪杀钉子户” 为场景来介绍。

客户端代码
public class Client {
	public static void main(String[] args) {
		// 幕后黑手想干掉"钉子户"
		Killer manipulator = new Manipulator();

		// 职业杀手出场
		Killer hitman = new Hitman(manipulator);

		// 杀手行动
		hitman.setTarget("钉子户");
		hitman.kill();
	}
}


执行结果:
引用
钉子户 已经被锁定
钉子户 被干掉了


先来看看基本接口, 也就是要做什么
public interface Killer {
	void setTarget(String target);

	void kill();
}


然后就是两个具体的实现: 幕后黑手 + 职业杀手
public class Manipulator implements Killer {

	private String target;

	@Override
	public void setTarget(String target) {
		this.target = target;
		System.out.println(target + " 已经被锁定");
	}

	@Override
	public void kill() {
		System.out.println(target + " 被干掉了");
	}
}

public class Hitman implements Killer {

	private Killer killer;

	public Hitman(Killer killer) {
		this.killer = killer;
	}

	@Override
	public void setTarget(String target) {
		killer.setTarget(target);
	}

	@Override
	public void kill() {
		killer.kill();
	}
}


毛简单吧, 哈哈。

猜你喜欢

转载自vrplat.iteye.com/blog/1100985
今日推荐