任何编程问题都可以通过加一层解决

David Wheeler: Any problem in computer science can be solved by another layer of indirection.

越来越发现这个非常有道理。为什么？

我自己现实的理解是:

一开始写的代码是解决特定问题的，所以只是针对特定情况的

慢慢这个特定情况种类越快越多了，如果改原有代码就越改越复杂，改不动了

为了把问题缩小，那就把最下层 (一开始的解决特定问题代码) 做一些抽象，暴露出接口定义让上层适配，上层适配就是把不同种类的特定问题适配到下层接口，这样就相当于加了一层

步骤 3 的好处是什么？ 底层代码改动少，上层适配，只有适配逻辑，这样就起到了代码隔离，减少相互影响，如果适配这一层，由出现步骤 2 提到的问题，那么就继续步骤 3，这样就又多了一层，所以一层一层就解决了一个一个问题

现实和这个逻辑还是很像的，一开始代码写的比较死，越改越改不动，那就把参数，配置提出，可以更灵活的配置

一点小感悟，不过确实有道理，