posts - 58,  comments - 75,  trackbacks - 0
接口在使用后,不需要也不允许用户销毁

接口用来通讯的。虽然在C++中,接口的一般用指针实现,但它代表的是一种通讯方式,而不是资源的
位置。请求者在使用完后不应去直接销毁这个指针,而应由接口的提供者去管理。

接口的提供者要管理接口关联的实体的生命周期,而且还有知道接口的使用情况才能管理接口。

接口于实体之间有关联,这表明实体要在接口前创建,要在接口后销毁。设计中接口提供者通过接口的
计数,来管理接口的状态。有一个请求者就将接口计数增加一,接口每被赋值一次接口计数也增加一次


接口的使用者在使用完后,要将接口返回给接口提供者,而不是自己直接销毁。因为接口不是被使用者
申请的资源,而是用户要求另一个对象通讯的通道。所以用完后要返还给接口提供者。接口提供者每接
到一个接口的返还,就减少这个接口的计数一次。

在要销毁接口关联的实体时,先要检查这个接口是否还有使用者,如果有,就要通知使用者,要求它们
返还接口。在接口没有使用者的情况下常能销毁实体(这样比较安全,当然也可以强行销毁)。

同一个接口可能对应多个实体,不过用户是感觉不到的。但是接口提供者一定要管理这种接口于不同的
实体之间的关联关系,保证对不同的实体销毁时,要收回与这个实体关联的所有接口。
posted on 2007-08-07 09:49 walkspeed 阅读(1869) 评论(1)  编辑 收藏 引用 所属分类: C++语言设计

FeedBack:
# re: 接口设计的要点(接口不应被使用者直接销毁)
2007-08-07 11:45 | SmartPtr
我想C++中实现COM就是这么做的  回复  更多评论
  

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理



<2007年5月>
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789

常用链接

留言簿(4)

随笔分类(64)

随笔档案(58)

文章分类(3)

文章档案(3)

相册

收藏夹(9)

C++零碎

好友

搜索

  •  

积分与排名

  • 积分 - 159870
  • 排名 - 163

最新评论

阅读排行榜

评论排行榜