Oop 黑盒与白盒重用
与白盒重用相比,使用黑盒重用的优点/缺点是什么?白盒: 优点:Oop 黑盒与白盒重用,oop,Oop,与白盒重用相比,使用黑盒重用的优点/缺点是什么?白盒: 优点: 简单(非常自然的概念) 你对事情有更多的控制权 缺点: 需要内在的知识 部件内部构件 可能难以实现(OO继承约束) 有时会导致断开\不正确的继承链 黑匣子: 优点: 低耦合(提供后期绑定和其他好处) 缺点: 不明显(代码更难理解) 接口比类更脆弱(即接口与继承) 我不确定这些特定术语的含义,因此在继续之前,我将尝试定义它们: 黑盒重用是在不同的项目中使用未修改的类/函数/代码 白盒重用是从一个项目中获取一个类/函数/
- 简单(非常自然的概念)
- 你对事情有更多的控制权
- 需要内在的知识 部件内部构件
- 可能难以实现(OO继承约束)
有时会导致断开\不正确的继承链
- 低耦合(提供后期绑定和其他好处)
- 不明显(代码更难理解)
- 接口比类更脆弱(即接口与继承)
- 黑盒重用是在不同的项目中使用未修改的类/函数/代码
- 白盒重用是从一个项目中获取一个类/函数/代码,并对其进行修改以适应另一个项目的需要
白盒重用意味着您知道组件是如何实现的。通常,白盒重用意味着类继承。根据我的经验,白盒重用通常通过继承完成,而黑盒则通过组合完成 白盒再利用 Pro:您可以自定义模块以适应特定情况,这允许在更多情况下重用
缺点:您现在拥有定制的结果,因此它增加了代码的复杂性 黑盒重用 优点:简单和清洁
缺点:很多时候这是不可能的 判决:
只要可能,我更喜欢黑匣子。我当时猜错了。我仍然认为我的答案更一般地适用于重用,所以我会继续回答,但感谢您的澄清。只是想知道,您是否使用过IoC容器?我曾在一个使用DI系统的大型项目中工作过,可以说,当您拥有越来越多的松耦合组件时,要找出损坏的组件是一件非常困难的事情:)参考:GoF p19和术语表。