白盒复用:源代码可见,可修改和扩展
– 复制已有代码当正在开发的系统,进行修改
– 可定制化程度高
– 对其修改增加了软件的复杂度,且需要对其内部充分的了解
黑盒复用:源代码不可见,不能修改
– 只能通过API接口来使用,无法修改代码
– 简单,清晰
– 适应性差些
白盒框架
白盒框架是基于面向对象的继承机制。之所以说是白盒框架,是因为在这种框架中,父类的方法对子类而言是可见的。子类可以通过继承或重写父类的方法来实现更具体的方法。虽然层次结构比较清晰,但是这种方式也有其局限性,父类中的方法子类一定拥有,要么继承,要么重写,不可能存在子类中不存在的方法而在父类中存在。
黑盒框架
黑盒框架时基于委派的组合方式,是不同对象之间的组合。之所以是黑盒,是因为不用去管对象中的方法是如何实现的,只需关心对象上拥有的方法。这种方式较白盒框架更为灵活,因为可以在运行时动态地传入不同对象,实现不同对象间的动态组合;而继承机制在静态编译时就已经确定好。黑盒框架与白盒框架之间可以相互转换。
白盒框架利用subclassing:
允许扩展每一个非私有方法需要理解父类的实现一次只进行一次扩展通常被认为是开发者框架
黑盒框架使用委派中的组合composition:
允许在接口中对public方法扩展只需要理解接口通常提供更多的模块通常被认为是终端用户框架,平台在具体项目中,还需要根据具体情况选用不同的框架。通常情况下黑盒白盒是一起使用,相互配合,以达到预期效果。
————————————————
版权声明:本文为CSDN博主「GizemGuner」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_39627422/article/details/80786457