设计模式之代理设计模式

设计模式:前人的一套经验的总结
特点:比较抽象

我们要模拟

new Thread(daoShi).start();

  即Thread代理Runnable完成start启动任务

代码如下:

interface Subject{ //主题类接口

}
class Real implements Subject{ //Real要使用Proxy提供的方法

}
class Proxy implements Subject{
	private Subject subject;
	public Proxy(){}
	public Proxy(Subject subject){
		this.subject=subject;
	}
	public void method(){System.out.println("Proxy的方法");}
}

public class Demo {
	public static void main(String[] args) {
		new Proxy(new Real()).method();
	}
}

  运行如图:

实际中我们的代理模式的代码:

interface Subject{ //主题类接口
	public void work();
}
class Real implements Subject{ //Real要使用Proxy提供的方法
	public void work(){
		System.out.println("谈业务...");
	}
}
class Proxy implements Subject{
	private Subject subject;
	public Proxy(){}
	public Proxy(Subject subject){
		this.subject=subject;
	}
	public void begin(){System.out.println("订机票、订酒店");}
	public void end(){System.out.println("整理汇总文件");}
	public void work(){
		this.begin(); //代理的
		subject.work(); //主要的工作
		this.end(); //代理的
	}
}

public class Demo {
	public static void main(String[] args) {
		new Proxy(new Real()).work();
	}
}

  一个人经理主页任务是去外地谈业务,而订机票酒店这些事情一般是由秘书代为办理的,同理回来后一些整理的收尾工作也由秘书代理完成

运行如图:

原文地址:https://www.cnblogs.com/mengxinrenyu/p/8095297.html