Spring都用到了那些设计模式(2)

上一节咱们学习了Spring中两个工厂模式,接下来咱们继续学习Spring中的其余典型模式。app

3. 单例(Singleton)学习

保证一个类仅有一个实例,并提供一个访问它的全局访问点。代理

Spring中的单例模式完成了后半句话,即提供了全局的访问点BeanFactory。但没有从构造器级别去控制单例,这是由于Spring管理的是是任意的Java对象。code

4. 适配器(Adapter)对象

将一个类的接口转换成客户但愿的另一个接口。Adapter模式使得本来因为接口不兼容而不能一块儿工做的那些类能够一块儿工做。blog

Spring中在对于AOP的处理中有Adapter模式的例子,见以下图:接口

11.18图片9_水印.png

 

因为Advisor链须要的是MethodInterceptor对象,因此每个Advisor中的Advice都要适配成对应的MethodInterceptor对象。图片

5.包装器(Decorator)get

动态地给一个对象添加一些额外的职责。就增长功能来讲,Decorator模式相比生成子类更为灵活。aop

 11.18图片10_水印.png

Spring中用到的包装器模式在类名上有两种表现:一种是类名中含有Wrapper,另外一种是类名中含有Decorator。基本上都是动态地给一个对象添加一些额外的职责。

6. 代理(Proxy)

为其余对象提供一种代理以控制对这个对象的访问。

从结构上来看和Decorator模式相似,但Proxy是控制,更像是一种对功能的限制,而Decorator是增长职责。

 

 11.18图片11_水印.png

Spring的Proxy模式在aop中有体现,好比JdkDynamicAopProxy和Cglib2AopProxy。

相关文章
相关标签/搜索