深入浅出面向对象的复用
何时使用,如何使用以及使用何种可复用的面向对象模型,只用真正明白上述三个为什么,我们才能说对于面向对象的可复用模型了有了深入的了解。
关键词:可复用资源,业务对象从何而来
复用性是面向对象编程模型的最主要的特点之一,而在现实中的使用情况却不尽然。面向对象可复用性并非免费的午餐,只是依靠开发工具带来的帮助是远远不够的,必须付出更多的努力你才能更好的享用它。下面我们要讲述的不仅仅是代码复用还有比代码更多的东西需要我们用复用的视角去关注它。在这些可复用的资源中,代码复用无疑是最不具实力的一种复用形式。请不要认为这是笔误,以我的观点代码级的软件复用仅仅能够使我们的程序不会变得更坏,除此之外大堆大堆的代码库没有更多的价值。要使我们的软件朝着更好的方向发展,重视其它形式的面向对象可复用性将会起到显著的作用。让我们一起来学习各种形式的可复用模型以及如何将这些优势运用到我们的应用程序中去。
代码复用
代码复用,可复用性的一种最常见的形式。可能会有一个或多个程序使用到这段复用代码,也就是最常见的情况复用代码被共享为公共类或是函数库或是过程(过程方法经常在C++中使用而在一切以面向对象为基础的Java和SmallTalk中是没有过程方法的)。然而糟糕的是代码级的复用通常被实现为对现有代码的复制和修改,以至于程序员在日常的开发中对此形式欣然接受而并未感觉到问题严重性。
原因在于代码级的软件复用其源代码对于任何人都是公开的,如果有需要任何人包括你我都可以按照自身的要求修改代码。那么这样以来使用代码级的软件复用将是一把双刃剑,一方面你可以自己决定是否使用或者何时使用它;另一方面作者如果以源代码的形式推出使用版本,这将使作者没有更多的动力去维护相关的文档,而这样做的结果是增加了学习的难度和门槛。
代码级软件复用最大的好处在于可以大量减少重复代码的出现,降低了开发和维护成本。不利之处在于,它的作用范围仅限于程序的编写而且会造成程序结构过分耦合。