Chinaunix首页 | 论坛 | 博客
  • 博客访问: 46570
  • 博文数量: 43
  • 博客积分: 1410
  • 博客等级: 上尉
  • 技术积分: 495
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-19 14:06
文章分类

全部博文(43)

文章存档

2011年(1)

2009年(42)

我的朋友
最近访客

分类: C/C++

2009-07-31 21:54:18

句柄类(handle classes)
   问题背景是这样的:1)在极为安全的领域,即使核心实现已经封闭在库中不可见,但是头文件中的变量定义仍然可能会曝露一些内部信息; 2)在设计初期,实现部分固然需要经常变动,连头文件中变量定义也需要经常变动,因此在重编译的时候头文件也需要编译,有时候导致编译时间过长。句柄类可 以解决这类问题:
  
    这是所有客户程序员都能看到的,其中struct cheshire是没有完全指定的类型说明或类说明,将用来存放真正的变量。在这种技术中,包含具体实现的结构主体被隐藏在实现文件中。

   cheshire 是一个嵌套结构,所以它必须用范围分解符定义
     struct handle::cheshire
   在handle::initialize()中,为cheshire struct分配存储空间 ,在handle::cleanup()中这些空间被释放。当编译 H A N D L E . C P P时,这个结构的定义被隐藏在目标文件中,没有人能看到它。如果改变了 c h e s h i r e 的组成,唯一要重新编译的是HANDLE.CPP,因为头文件并没有改动。


     句柄类的使用就像任何类的使用一样,包括头文件,创建对象,发送信息。虽然这并不是完美的信息隐蔽,但毕竟是一大进步。
阅读(611) | 评论(0) | 转发(0) |
0

上一篇:常量

下一篇:数据抽象

给主人留下些什么吧!~~