TDD(测试驱动开发)

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

2020-11-19  本文已影响0人  Ps天花乱坠

不完美的库类

症状

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


Incomplete Library Class

病因

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

导致的健康问题

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

治疗

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

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

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

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

康复

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

InComplete Library Class After Refactoring
上一篇 下一篇

猜你喜欢

热点阅读