Java编程--简单的Proxy程序(代理设计模式)

有时候对象要完成某项任务(功能)需要很多步骤,而这些步骤全部交给对象自己完成显然是不现实的,就像我们人要吃饭,你总不能要求我们每个人都去种地、打面、做饭一样,我们只需要完成其中的吃饭这一核心操作就可以了,而其他的辅助操作就交给代理Proxy去实现。

我们就拿吃饭这件事完成简单的代理设计模式。

代码实现

接口定义要完成的核心功能

package proxy;
/**
 * 核心操作
 * 2018-05-19
 */
public interface People {
	public void eat();
}

完成核心功能的类

package proxy;
/**
 * 完成核心操作的对象
 * 2018-05-19
 */
public class Student implements People {

	@Override
	public void eat() {
		System.out.println("***学生在吃饭***");
	}

}


代理类设计

package proxy;
/**
 * 完成辅助操作,并将核心操作交由真实对象完成
 * 2018-05-19
 */
public class Proxy implements People{

	private People people ;
	
	//接收一个完成核心操作的对象
	public Proxy(People people) {
		this.people = people;
	}

	@Override
	public void eat() {
		this.prepare();//辅助
		this.people.eat();//核心操作由真实对象完成
		this.clean();//辅助
	}
	
	public void prepare() {
		System.out.println("农民伯伯种粮食,餐厅做饭等吃饭前的准备工作。");
	}
	public void clean() {
		System.out.println("餐厅工作人员打扫卫生等收尾工作。");
	}
	
}

测试代码

package proxy;
/**
 * 测试
 * 2018-05-19
 *
 */
public class TestDemo {
	public static void main(String[] args) {
		//传入完成核心操作的对象
		People people = new Proxy(new Student());
		people.eat();
	}
}

结果:

农民伯伯种粮食,餐厅做饭等吃饭前的准备工作。
***学生在吃饭***
餐厅工作人员打扫卫生等收尾工作。

你可能感兴趣的:(Java)