Posted on 2006-01-23 23:01
canonical 阅读(961)
评论(0) 编辑 收藏 所属分类:
软件开发
代码复用包括两个方面:概念复用和实现复用。这两者在C++的虚拟函数设计中是合二为一的,结果概念上的模糊往往造成继承机制的滥用。为了复用我们往往在
基类中塞入过多的职责,并在程序中制造了过多的层次。java的interface是纯粹的概念复用机制,实现方面的复用我们一般通过Impls类或者
Utils类来进行,即将代码片断写为静态函数。一般应该避免在类中写特别多的帮助性成员函数,因为成员函数隐含的通过成员变量相关着,比静态函数要更加
难以控制。
类是一个整体的概念,整体概念失效了,类也就不存在了。从这一点上来说,它未必是比静态函数更加稳定。概念与实现是两个不同层面的东西。实际上它们一般也
是多对多的关系。同一个概念可能换用多种不同的实现,而同一段功能代码也可能在多个类中使用。
代码复用的意义不仅仅在于减少工作量。实际上复用是对软件的一种真正的检验,而测试仅仅是一种模拟的检验而已。每一次复用都是对代码的一次拷问。在不断使
用中感受到不同使用环境中的各种压力,才能实现概念的不断精化并确保实现的正确性。