浅谈代理模式

之前写了一篇工厂方法模式的文章,本来还想写抽象工厂模式的,但是感觉抽象工厂模式就是工厂方法模式的扩展。就不写了,这里来谈一下代理。代理模式在很多地方都有应用,比如说java的动态代理,CGLIB代理,以及Spring 的AOP等等。

1.代理模式

简单的说,就是为其他对象来提供一个代理,来控制对该对象的访问。

2.代理模式的三大角色

 抽象主题角色:是真实主题角色和代理主题角色的共同接口

真实主题角色:是具体业务逻辑的实现

代理主题角色:负责在需要的时候去创建或者删除真实主题角色,并在真实主题角色之前或之后做工作

3.具体实现

抽象主题角色

package com.test;

public interface Subject {

	void operation();
}

真实主题角色

package com.test;

public class TrueSubject implements Subject{

	public void operation() {
		System.out.println("--------真正要做的东西--------");
	}

}

代理主题角色

package com.test;

public class ProxySubject implements Subject {

	private Subject subject;

	public ProxySubject(Subject subject) {
		this.subject = subject;
	}

	public void operation() {
        this.operationBefore();
        subject.operation();
        this.operationafter();
	}

	public void operationBefore()
	{
		System.out.println("------在代理前处理的事件---------");
	}
	
	
	public void operationafter()
	{
		System.out.println("------在代理后处理的事件---------");
	}


}

测试

package com.test;

public class Test {
	public static void main(String[] args) {
		Subject ss = new TrueSubject();
		ProxySubject p = new ProxySubject(ss);
		p.operation();

	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值