Posted on 2008-06-04 15:39
RichardHe 阅读(195)
评论(0) 编辑 收藏 引用 所属分类:
[转]
接口在使用后,不需要也不允许用户销毁
接口用来通讯的。虽然在C++中,接口的一般用指针实现,但它代表的是一种通讯方式,而不是资源的
位置。请求者在使用完后不应去直接销毁这个指针,而应由接口的提供者去管理。
接口的提供者要管理接口关联的实体的生命周期,而且还有知道接口的使用情况才能管理接口。
接口于实体之间有关联,这表明实体要在接口前创建,要在接口后销毁。设计中接口提供者通过接口的
计数,来管理接口的状态。有一个请求者就将接口计数增加一,接口每被赋值一次接口计数也增加一次
。
接口的使用者在使用完后,要将接口返回给接口提供者,而不是自己直接销毁。因为接口不是被使用者
申请的资源,而是用户要求另一个对象通讯的通道。所以用完后要返还给接口提供者。接口提供者每接
到一个接口的返还,就减少这个接口的计数一次。
在要销毁接口关联的实体时,先要检查这个接口是否还有使用者,如果有,就要通知使用者,要求它们
返还接口。在接口没有使用者的情况下常能销毁实体(这样比较安全,当然也可以强行销毁)。
同一个接口可能对应多个实体,不过用户是感觉不到的。但是接口提供者一定要管理这种接口于不同的
实体之间的关联关系,保证对不同的实体销毁时,要收回与这个实体关联的所有接口。