有时候经常看着项目里层层叠叠的接口和抽象类,就像看着套了好几层的俄罗斯套娃,搞得头晕眼花。但是其实这样的抽象方式是有其中的道理的。
过度抽象的诱惑
我刚接触设计模式的时候有一个非常激动的想法:抽象这个概念太牛逼了!抽象得越多架构就越优雅。结果就像你说的,写出了只有一个实现类,却有三四层接口继承的代码。就像那句话说的:
"如果你有一个锤子,你看什么都像钉子。如果你刚学会了抽象,你看什么都想抽象。"
但问题是,过度抽象不仅没有带来好处,反而会增加代码复杂度,让其他开发者阅读代码时要在多个接口之间来回跳转,并且会搞出很多不必要的间接层,每一层抽象都是一个需要维护的契约,几个月之后你在看你的代码,你会在层层抽象中想扇以前的自己几巴掌。
什么时候需要抽象?
有几个情况很适合来搞抽象:
1.当你确实需要