Spring中使用了哪些设计模式

1.单例模式

        注意:请大家区分 singleton pattern 与 Spring 中的 singleton bean,singleton bean 只能保证每个容器内,相同 id 的 bean 单实例

        查看:org.springframework.transaction.TransactionDefinition的withDefaults方法

2.构建者模式

        查看org.springframework.beans.factory.support.BeanDefinitionBuilder

3.工厂方法模式

        查看:ApplicationContext和BeanFactory中的getBean方法

4.适配器模式

        查看:大家很熟悉的org.springframework.web.servlet.HandlerAdapter

5.组合模式

        查看:org.springframework.web.method.support.HandlerMethodArgumentResolverComposite

6.装饰者模式:

        注意:装饰者模式和代理模式的区别:装饰器模式注重的是功能增强,避免子类继承方式进行功能扩展,而代理模式更注重控制目标的访问

        查看:org.springframework.web.util.ContentCachingRequestWrapper

 7.代理模式:

        这个大家就很熟悉了(JDK动态代理和Cglib动态代理)

        查看:org.springframework.aop.framework.JdkDynamicAopProxy

                   org.springframework.aop.framework.ObjenesisCglibAopProxy

 8.责任链模式:

        查看:org.springframework.web.servlet.HandlerInterceptor

 9.观察者模式:

        spring中的事件监听器和广播器

        查看:org.springframework.context.ApplicationListener

                   org.springframework.context.event.ApplicationEventMulticaster

                   org.springframework.context.ApplicationEvent

 10.策略模式:

        查看:org.springframework.core.annotation.MergedAnnotations.SearchStrategy

  11.模板方法模式:

        这个大家也比较熟悉了

        大部分以 Template 命名的类,如 JdbcTemplate,TransactionTemplate

以上举例只有一种或两种,当然还有更多,大家可以自行研究一下

     

        

       

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值