一说起策略设计模式,相比大家都不陌生,在实际的业务开发中,合理的使用设计模式来编程,可以让代码阅读起来层次感更强,同时扩展性也会得到提升!,最近看同事的代码时候,学到了一个小技巧,在某些场景下合理的使用策略模式还是非常有用的,在此分享一下给大家。,在介绍 SpringBoot 中如何实现策略设计模式之前,我们先简单的回顾一下策略模式的设计思路。,以编写一个简单的程序计算器,代码如下!,首先,我们定义一个Operation接口,用于逻辑的计算;,接着,分别将四个if判断逻辑独立成一个模块,来单独处理;,然后,创建一个工厂类,用于处理客户端传入的参数;,最后,在需要的地方引入方法即可!,以上就是一个典型的策略模式的实践思路,从代码阅读性、扩展性角度看,还是非常干净利落的。,那么,在SpringBoot项目中,我们应该如何使用呢?,首先,我们还是定义一个Command接口,用于方法的抽象和统一;,接着,编写四套不同的计算处理逻辑;,然后,编写一个类似于上文的策略处理类;,最后,我们只需要在适当的位置应用即可!,总结:这种方案的实践,和上面介绍的思路基本上一致,不同的地方在于,当 springboot 启动时,会将对象注入到IOC容器。,翻查Spring的ioc容器,你会发现一个秘密,当一个接口有多个实现类时,Spring会自动将Strategy接口的实现类注入到这个Map中,key为bean id,value值则为对应的策略实现类。,简单的说,我们只需要通过@Autowired注入对象,不需要通过CalculatorService这个类进行单独配置,操作方式如下!,首先,编写一个CommandFactory工厂类,用于逻辑的处理;,最后,直接在合适的地方使用CommandFactory即可!,总结:方案二和方案一的不同点在于,不需要显式的编写CalculatorService策略处理类来初始化对象,Spring在初始化对象的时候,可以帮忙我们实现对象的注入!,本文主要围绕在 SpringBoot 引入策略模式的设计思路和实践方法进行介绍,在实际的业务开发中,合理的使用策略模式,能让代码看起来更佳清爽,业务扩展性也更佳强大,希望能帮助到大家!
© 版权声明
文章版权归作者所有,未经允许请勿转载。