[19]Incomplete Library Class(不完美

2016-01-10  本文已影响68人  rxdxxxx

"复用"常被视为对象的终极目的. 不过我们认为, 复用的意义常常被高估---大多数对象只够用就好. 但是不可否认, 许多编程技术都建立在程序库的基础上, 没人敢说是不是我们把排序算法忘得一干二净了.

类库建筑者没有未卜先知的能力, 我们不能因此责怪他们. 毕竟我们自己也几乎总是系统快要完成的时候才能弄清除它到设计. 所有库作者的任务真的很艰巨. 麻烦的是库往往构造得不够好, 而且往往不可能让我们修改其中的类使它完成我们希望的工作. 这是否意味那些经过实践检验的战术,如 Move Method 等, 如今都派不上用场了?

幸好我们又两个专门应付这种情况的工具. 如果你只想修改类库的一两个函数, 快要运用Introduce Foreign Method(引入外加函数)

如果想要添加一大堆额外行为, 就得运用*Introduce Local Extensi(引入本地扩展)*

Tips:


Introduce Local Extensi(引入本地扩展) :

建立一个新类, 使它包含这些额外的函数. 让这个扩展品成为源类的子类或者包装类.
上一篇下一篇

猜你喜欢

热点阅读