使用黑盒重用而不是白盒重用有什么优缺点?
答案 0 :(得分:8)
根据我的经验,白盒重用通常是通过继承完成的,黑盒子是通过组合完成的。
Pro:您可以根据具体情况自定义模块,这样可以在更多情况下重复使用 Con:您现在拥有自定义结果,因此会增加您的代码复杂性。
亲:简洁和清洁 骗局:很多时候,这是不可能的
我尽可能喜欢Black Box。
答案 1 :(得分:3)
白盒:
的优点:
缺点:
黑盒:
的优点:
缺点:
答案 2 :(得分:2)
我不确定这些具体术语是什么意思,所以在继续之前我会先定义它们是什么:
黑盒重用的优点是,一旦代码被编写,调试和测试,您可以在不同情况下无数次重复使用它。缺点是真正的黑盒可重用代码很少,并且需要花费时间和精力来格式化API并调用代码并使其与黑盒方法一致(没有上下文泄漏)。
白盒重用的优点在于,您确实可以多次使用您的代码,而无需先从原始项目中解脱出来。您只需复制和修改即可。这种类型的重用更为常见,但它也有一些缺点。大多数情况下,如果您在一个实现中发现错误,则需要检查以确保它在所有其他实现中已得到修复。如果它们经常发生分歧,这可能很困难。
答案 3 :(得分:1)
@Kyle,
黑盒重用意味着您在不知道内部组件的情况下使用组件。你所拥有的只是一个组件接口。
白盒重用意味着您知道如何实现组件。通常,白盒重用意味着类继承。