Java设计模式——适配器模式与SpringMVC中HandlerAdapter

本文深入探讨了SpringMVC框架中如何运用适配器模式解决Controller类型的多样性问题,避免了传统if-else判断的繁琐,遵循了开闭原则,提升了代码的可维护性和扩展性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 业务场景

通过解读SpringMVC的源码可知,HandlerAdapter使用了典型的适配器模式,解决了由于Controller的类型不同,有多重实现方式,那么调用方式就不是确定的,如需调用Controller则需要循环判断Controller实例列表中是否有满足条件的实例,并且如果我们增加一个新的Controller,就要在代码中加入一行判断逻辑,这种形式就使得程序难以维护,也违反了设计模式中的开闭原则 – 对扩展开放,对修改关闭。

2. 传统处理/适配器模式

2.1 传统模式
if(mappedHandler.getHandler() instanceof MultiActionController){  
   ((MultiActionController)mappedHandler.getHandler()).xxx  
}else if(mappedHandler.getHandler() instanceof XXX){  
    ...  
}else if(...){  
   ...  
}
2.2 适配器模式

SpringMVC中的适配器(适配者模式)

2.3 什么是适配器模式

https://blog.youkuaiyun.com/u012401711/article/details/52627802 (喜欢这类大神的讲解,形象便于理解,有兴趣的同学可以看看)

3. 拓展阅读

https://www.jb51.net/article/100146.htm

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值