Execute Around Method

“前人栽树,后人乘凉”,搞Java的,不知道模式,那这人绝对还未入流。但经常是写了这么多代码,看看才发现,原来前人早就总结过了,自己满头大汗的栽了棵树苗,蓦然回首,擦,远方已经有棵大树鸟。

 

就拿这个模式来说,名字挺吓人的,其实估计搞过Java(或者被搞)的大概都会用过,业务场景是,对于输入输出流,JDBC连接等资源,一般的处理方式是谁开启的就由谁负责关闭资源,其中必然涉及对于异常的处理,而如果这个资源不仅仅是当前对象要用,还可能传递给别的对象使用的话,一般的做法就是。。。不说废话了,贴代码吧: 

 public void useResource(ResourceUser user){
		Resource resource = null;
		try{
			user.use(resource.open());
		}
		catch (Exception e){
			user.onError(e);
		}
		finally{
			if (resource != null){
				try{
					resource.close();
				}
				catch (Exception e){
					user.onError(e);
				}
			}
		}
	}

 其它的资源使用者直接在use()方法里面做自己的相关业务就行了。

 

这种处理方式学名就叫Execute Around Method,其实不光资源处理是这种方式,稍微扩展一下会发现,什么AOP、动态代理的处理也是这种方式。

 

“一开始没有模式,起了个名字就是模式”。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值