简单代理模式

代理模式使用方便简单,Java中的代表作:1、Thread类和Runnable接口的关系,2、Spring框架的AOP了。

代理模式关键点:1、需要有真实角色和代理角色;2、两者之间需要都实现了相同的接口的方法。3、代理角色需要有一个以接口为参数的构造方法。


//首先是定义接口
//接口给出定义好的功能方法,真实角色和代理角色都会实现相同的方法。
interface SafeMode{
	void check();
}

//用户角色
class User implements SafeMode{

	private String name;
	
	public User(String name) {
		this.name = name;
	}

	@Override
	public void check() {
		System.out.println("检索员工"+ name + "的信息...");
	}
}

//代理角色
class Company implements SafeMode{
	
	private SafeMode safe;
	
	public Company() {   //默认的构造器
	}
	
	public Company(SafeMode safe){   //添加拥有借口参数的构造器,Thread也有这种构造器,可以参考AIP文档。
		this.safe = safe;
	}

	public void before(){
		System.out.println("生物磁场扫描启动中.....");
	}
	
	public void after(){
		System.out.println("生物磁场扫面结束。");
	}
	
	//该方法中在调用check方法之前和之后都调用了其他的方法,在Spring中的AOP就是这样。
	@Override
	public void check() {
		before();
		safe.check();
		after();
	}
	
	
}

//开始测试
public class StaticProxy {

	public static void main(String[] args) {
		SafeMode user = new User("张三");
		SafeMode company = new Company(user);//把真实角色作为参数传入代理角色
		company.check();
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值