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();
}
}
结果:
农民伯伯种粮食,餐厅做饭等吃饭前的准备工作。
***学生在吃饭***
餐厅工作人员打扫卫生等收尾工作。
---------------
我每一次回头,都感觉自己不够努力,所以我不再回头。
---------------