Spring框架中都用到了哪些设计模式?( 三 )

  • 每个通知Advice都有对应的拦截器: BeforeAdvice - MethodBeforeAdviceInterceptor AfterAdvice - MethodAfterAdviceInterceptor AfterReturningAdvice - MethodAfterReturningAdviceInterceptor
  • Spring中预定义的通知要通过对应的适配器,适配成为MethodInterceptor接口类型的对象
  • Spring MVC中的适配器模式
    • Spring MVC中 ,DispatchServlet根据请求信息调用HanlderMapping, 解析请求对应的Handler, 解析到对应的Handler后,开始由HandlerAdapter适配器进行处理
    • HandlerAdapter作为期望接口,具体的适配器实现类对具体目标类进行适配 .controller作为需要适配的类
    • 通过使用适配器AdapterHandler可以对Spring MVC中众多类型的Controller通过不同的方法对请求进行处理
    装饰器模式Decorator
    • 装饰器模式: 动态地给对象添加一些额外的属性或者行为 和继承相比,装饰器模式更加灵活
    • 装饰器模式使用场景: 当需要修改原有的功能,但是不想直接修改原有的代码,就可以设计一个装饰器Decorator类在原有的代码的外面,这样可以在不修改原有的类的基础上扩展新的功能
    • Spring中配置DataSource时 ,DataSource可以是不同的数据库和数据源.为了在少修改原有类的代码下动态切换不同的数据源,这时就用到了装饰器模式
    • Spring中含有Wrapper和含有Decorator的类都用到了装时期模式,都是动态地给一个对象添加一些额外的属性或者功能
    总结
    • Spring框架中使用的设计模式:
    设计模式
    Spring框架
    工厂模式
    BeanFactory
    ApplicationContext
    单例模式
    Spring中的Bean
    代理模式
    Spring AOP
    模板方法模式
    Spring中以Template结尾的类
    观察者模式
    Spring事件驱动模型
    适配器模式
    Spring AOP中的AdvisorAdapter
    Spring MVC中的HandlerAdapter
    装饰器模式
    Spring中含有Wrapper和含有Decorator的类




    推荐阅读