程序员Java

MyBatis 中用了哪些牛逼的设计模式?

2023-03-27  本文已影响0人  喝杯Java润润BUG

在 MyBatis 的两万多行的框架源码中,使用了大量的设计模式对工程架构中的复杂场景进行解耦,这些设计模式的巧妙使用是整个框架的精华。

经过整理,大概有以下设计模式,如下图所示。

image.png

创建型模式

工厂模式

SqlSessionFactory 的结构如下图所示。

image.png

单例模式

Configuration单例配置类的结构如下图所示。

image.png

建造者模式

ResultMap建造者模式的结构如下图所示。

image.png

类型:结构型模式

适配器模式

日志实现类的结构如下图所示。

image.png

代理模式

代理模式的实现结构如下图所示。

image.png

组合模式

解析节点类的结构如下图所示。

image.png

装饰器模式

二级缓存装饰器的实现结构如下图所示。


image.png

行为型模式

模板模式

SQL 执行模板模式如下图所示。


image.png

策略模式

多类型处理器策略模式的结构如下图所示。


image.png

迭代器模式

拆解字段解析实现的结构如下图所示。

image.png

总结

通过梳理,MyBatis 大约运用了 10 种左右设计模式。可以说,复杂且优秀的 ORM 框架源码在设计和实现的过程中都会使用大量的设计模式。

在解决复杂场景的问题时,需要采用分治、抽象的方法,运用设计模式和设计原则等相关知识,把问题合理切割为若干子问题,以便加以理解和解决。

学习源码远不是只是为了应付面试,更重要的是学习优秀框架在复杂场景下的解决方案。通过学习这些优秀的方案技术,可以提高对技术设计和实现的理解,扩展编码思维,积累落地经验。只有经过这样长期的积累,我们才更有可能成为优秀的高级工程师和架构师。

上一篇 下一篇

猜你喜欢

热点阅读