Spring中用到的一些设计模式

单例模式:bean默认就是单例

原型模式:指定作用域为prototype

工厂模式:BeanFactory

模板方法:postProcessBeanFactory, onRefresh, initPropertyValue

策略模式: xmlBeanDefinitionReader,PropertiesBeanDefinitionReader

观察者模式: listener, event, multicast

适配器模式: Adapter

装饰器模式: BeanWraper,主要作用是完成bean的属性填充

责任链模式: 使用AOP的时候会先生成一个拦截器链

代理模式:动态代理

委托者模式:delegate

 

 

其中,

模板方法策略模式在表现上比较类似,都是相互之间可以替换

模板方法:在父类中已经定义好了一个算法的框架,允许子类来实现一系列步骤中的特定的一些步骤

策略模式:定义了一组算法,每个算法都被封装,这些算法相互之间可以替换

 

装饰器模式代理模式在表现上也有一些类似,都是在一个类实例中持有另一个类实例,两个类具有相同的接口,方法内部会进行调用持有实例的方法

装饰器模式:强调对自身业务功能的扩展和增强,装饰器类和原类是可以相互替换的

代理模式:强调对非业务功能的扩展和增强,强调隐藏原实现,强调的是一个功能的调用,通过代理类来间接调用

posted @ 2024-03-26 14:34  坏男银  阅读(15)  评论(0编辑  收藏  举报