重学Java设计模式
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

第9章 适配器模式

9.1 码农心得

研发人员在编程开发时,除了编写正常流程,更多的时候会考虑异常流程。就像脑筋急转弯:树上有7只鸟,打死1只树上还剩下几只?我们可能会说,其他鸟飞走了,树上没有了。但在实际的编程开发中会考虑更多的情况,比如剩下6只鸟是真鸟还是假鸟、它们听力有没有障碍、有没有被绑在树上、枪声是否把其余6只震晕等。而这些奇怪的情况往往也是用户的行为体现到程序编码里的反映。

有些程序员在工作一段时间后都会想办法提升自己的技术栈能力,也是为了后续可以写出更好的程序。通常会尝试阅读一些源码,如 Spring、MyBaits、Dubbo 等。但在阅读时会发现,这件事并不那么容易。因为一个框架源码随着不断地迭代,会变得越来越复杂;同时,在框架代码中不仅用到很多的设计模式,甚至有时根本不是一个模式的单独使用,而是多种设计模式的综合运用。这与大部分研发人员平时开发的 CRUD 不一样,如果都是从上到下用if语句也就谈不上什么框架了。就像在Spring的源码中搜索关键字Adapter,就会出现很多实现类,例如UserCredentialsDataSourceAdapter。所以,阅读源码的学习复杂度就会增加。为了学会这些知识,需要研发人员不断地夯实基础,通过实践验证,把合适的技术运用到自己的业务代码中。