Resource Releases Resource 资源释放.

原文地址:[url]http://www.c2.com/cgi/wiki?ResourceReleasesResource[/url]

随记:网站上第二小节的Architectural idioms:里面文章都有些太长,也许是很重要,参与的人比较多,不过还是等空闲点再翻翻.

文章第一段描述的是..一种比较早的解决资源回收问题的处理接口,特别可以用于管理比较宝贵的资源时候进行使用.

优点如下:
1:它是可重用和抽象的
2:提供对所有资源文件统一的管理 //并不准确..大概这个意思
3:他没有对多少客户端运行访问限制

这里有一个快速写下的抽象类

public abstract class AbstractResource
{
abstract protected begin(ResourceClient client, Object object);
abstract protected end(ResourceClient client, Object object);

public void consume(ResourceClient client, Object object)
{
begin(client, object);
try {
client.consume(this, object);
} finally {
end(client, object);
}
}
}

public interface ResourceClient
{
abstract public void consume(
AbstractResource resource,
Object object
);
}


[color=red]批注:这里使用特别的抽象接口,组合对类回收格式和调用格式的约定,很好的封装了对资源文件调用以及回收的格式,方便重用与统一调用[/color]

如果一个对象需要使用一个资源超出了一个方法的调用..可以参考 AbstractSessionPattern[url]http://www-dse.doc.ic.ac.uk/~np2/patterns[/url]

在系统的一些地方,经常或者一直出现一个对象使用一个方法拥有对资源文件的调用,在那对象之上使用.当它的方法结束,回收那资源.

甚至在事件驱动的环境,经常使用一些状态,一些地方,那相当于真正的对象,这个方法也许看起来如:
[self finished] whileFalse: [self waitSeconds: 30]

在这个期间,所有的其他对象和资源受到该对象的控制.
[color=red]批注: 么有看懂这个代码...意思也比较模糊的理解[/color]


后半段..明天翻译
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值