重构坏味道:不完美的库类

不完美的库类

症状

有时候你在工具包(依赖包)中找不到你想要的工具(方法或者函数),但是又没有其它工具包可以替换,因为这个工具包的其它工具你却十分喜欢,这种时候你无法直接修改它,只能在客户端打补丁来补足你需要的那个函数。


重构坏味道:不完美的库类_第1张图片
Incomplete Library Class

病因

库的作者没有未卜先知的能力,因为他也无法考虑设计是非常的完美周全,所以导致了可能某些功能在将来并没有完美支持。

导致的健康问题

如果调用端只有一处想使用这个类库,可以添加扩展的代码,但是如果有多处使用相同的功能,可能会在很多地方都出现这样相同的代码,然而这段扩展代码本该属于那个不完美的类。

治疗

  • 如果想修改库类的一两个函数

尝试运用 Introduce Foreign Method 在目标类中建立一个函数,用来提供你需要的功能
IntelliJ IDEA 练习视频

  • 如果想加一大堆额外行为

尝试运用 Introduce Local Extension 1.子类化 2.包装类)使"函数和数据被统一封装,防止其它类部分过分复杂"
IntelliJ IDEA 练习视频

康复

现在我可以找到锤子和扳子来处理我想做的事情了

重构坏味道:不完美的库类_第2张图片
InComplete Library Class After Refactoring

你可能感兴趣的:(重构坏味道:不完美的库类)