软件构造之黑/白盒框架

Blackbox Framework(黑箱框架)

  1. 框架和插件接口:框架提供一个插件接口(Plugin Interface),这个接口允许用户定义自己的类(User-defined Class)。
  2. 委托机制:用户定义的类通过实现插件接口,与框架进行交互。这种机制称为委托机制(Delegation-based)。委托机制使用户定义的类可以被框架调用,而不需要用户了解框架的内部实现。
  3. 终端用户和框架的关系:终端用户直接与框架交互,而框架则通过插件接口与用户定义的类进行间接交互。
  4. 复用代码:框架通过插件接口调用用户定义的类,实现代码复用。

Whitebox Framework(白箱框架)

  1. 框架和用户定义类的关系:在 Whitebox 框架中,用户定义的类直接继承框架的类(Framework),这种机制称为继承机制(Inheritance-based)。
  2. 继承机制:用户定义的类通过继承框架的类来扩展和定制框架的功能。这种方式要求用户了解框架的内部实现细节,因为用户需要知道如何正确地继承和扩展框架类。
  3. 终端用户和框架的关系:终端用户直接与用户定义的类交互,而用户定义的类又是从框架继承而来的。
  4. 复用代码:用户通过继承框架类来复用代码,框架提供了基础实现,用户可以在此基础上进行扩展。

总结

  • Blackbox 框架(Delegation-based):通过委托机制,用户定义的类实现插件接口,与框架间接交互,用户不需要了解框架内部实现。适合希望对框架有最低了解的情况。
  • Whitebox 框架(Inheritance-based):通过继承机制,用户定义的类直接继承框架的类,需要用户了解框架的内部实现。适合需要深入定制框架功能的情况。

这两种框架的区别主要在于代码复用和扩展方式的不同,委托机制使框架像一个黑箱,用户无需了解其内部工作原理,而继承机制使框架像一个白箱,用户需要理解其内部实现以进行扩展。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值