一、简介
代理模式可以为实际对象创建一个代理,在对象的方法调用时,代理模式可以在方法调用前添加前置处理(比如权限验证),在结果返回前添加结果处理(比如加密),可以添加异常处理等等。。。总之用途十分广泛,java也为此提供了支持。
二、代码示例
要求:
1、设计一个人类,初始化姓名,拥有外出和回家两个方法;
2、通过代理模式为外出方法添加前置处理:出门前检查手机钱包;
3、通过代理模式为回家方法添加后置处理:回家后结算当日开销;
通知接口(定义前置、后置方法)、人类接口(定义行为):
//人类接口
public interface IPeople {
//外出
void goOut();
//回家
void goHome();
}
//前置、后置方法接口定义
public interface IAdvice {
void before();
void after();
}
IAdvice 接口的命名是应用时常用的命名方式,可自行修改,后文中以“通知”代表该接口。另外常用的通知方法还有处理异常和处理结果等,可自行添加。
人类及通知的简单实现:
//人类实现类
public class PeopleImpl implements IPeople {