POSA2:Wrapper Facade模式

意图

用更加简洁、健壮、可移植、可维护和内聚的面向对象接口,封装已存在的非面向对象API的函数和相关数据。

背景

使用已存在的非面向对象的API提供的服务或机制,开发可维护和进化的应用。

问题

  • 简洁的代码比复杂的代码更加健壮,因为它易于理解和维护
  • 可移植的软件可以容易的在不同的操作系统、编译器和硬件平台之间移植
  • 提高软件可维护性,会降低开发生命周期的开销
  • 高内聚的组件,易于学习、维护和增强

解决方案

结构:

行为:


实现:

  1. 识别已有的过程式API中内聚的抽象和关系
  2. 把内聚的函数放入包装外观类中(Wrapper Facade Class)
    1. 创建内聚类
    2. 把多个独立的函数放入其中
    3. 自动创建和销毁,可以考虑使用构造函数和析构函数
    4. 选择间接的等级
    5. 检查依赖与特定平台变化的代码
  3. 考虑以可控地访问实现细节(Escape-Hatch)
  4. 开发一套错误处理机制
  5. 定义相关的帮助类(可选)

已知应用

  1. MFC
  2. ACE

效果

优势:
  • 内聚的高层面向对象接口
  • 易于移植和维护
  • 模块化、可重用、可配置
不足:
  • 功能缩水(Escape-Hatch可以解决)
  • 性能降低(类函数内联可以解决)
  • 编程语言和编译器的限制

 

2012/04/11 00:05 于上海

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值