Wrapper facade pattern

Wrapper facade pattern 用于把低级的函数和数据结构封装在高级的面相对象的接口中。使用这种模式的类库包括 MFC,ACE 等,它们把低级的操作系统提供的 c api 和数据结构封装在 cpp 的接口中。

为什么需要使用 Wrapper facade pattern 来封装系统提供的 c api:
1. c api 过多使用弱类型化参数,例如 HANDLE。弱类型化参数削弱了编译器对类型的检查能力,增加了程序不稳定的因素。
 
2. 系统提供的 c api 不可移植。即使我们并不打算编写跨操作系统平台的程序,我们也要考虑到同个系统的不同编译平台的差异,最简单的一个例子,vc6 下的 assert 的行为就不同于 vs2008 下的 assert,我们总应该封装系统提供的 api,以致于程序能够灵活的迁移到不同的平台下。
3. 封装 c api 是编写框架的基础。框架是解决本质复杂度的强大工具。
 
Wrapper facade pattern 解决方案:
把相关的函数和数据结构封装在一个或者多个 Wrapper facade 类中。
Wrapper facade 模式比较简单,很明显,它只有两个参与者:
1. Wrapper facade
2. functions
 
如何更好的编写 Wrapper facade,这里有一些指导原则:
1. 熟悉需要封装的 functions 提供功能
2. 熟悉领域的抽象概念(我们需要通过概念来认识相关领域《The big questions》)
3. 对于某个特定的抽象,识别出相关联的函数和数据结构,这组函数和数据结构将产生一个或多个 Wrapper facade class
4. 将一组内聚的函数
本文未完成。
  • 0
    点赞
  • 0
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论

打赏作者

killercat

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值