美文网首页设计模式专家
spring常用设计模式

spring常用设计模式

作者: 青城楼主 | 来源:发表于2018-07-18 07:52 被阅读75次

1.工厂模式,这个很明显,在各种BeanFactory以及ApplicationContext创建中都用到了;

2.模版模式,这个也很明显,在各种BeanFactory以及ApplicationContext实现中也都用到了; 一个抽象类,很多的子类!抽象类写好主要的逻辑,一些不太重要的代码给其他人写!

public abstract class AbstractImageLoader {

//抽象类定义整个流程骨架
public final void downloadImage(String imageUrl,int width,int height){
    //先获取最终的数据源URL
    String finalImageUrl=getUrl(imageUrl,width,height);
    //然后开始执行下载
}
//以下是不同子类根据自身特性完成的具体步骤
protected abstract String getUrl(String imageUrl,int width,int height);

}
public class WebpImageLoader extends AbstractImageLoader {
@Override
protected String getUrl(String imageUrl, int width, int height) {
return String.format("%s?imageView2/1/w/%d/h/%d/format/webp", imageUrl, width, height);
}
}
测试类
String imageUrl = "http://img.my.csdn.net/uploads/201309/01/1378037235_7476.jpg";
AbstractImageLoader loader =new WebpImageLoader();
loader.downloadImage(imageUrl,200,200);
就是方法内的简易可扩展的代码留给子类去实现

3.代理模式,在Aop实现中用到了JDK的动态代理;

4.单例模式,这个比如在创建bean的时候。

5.外观模式!相当于cotroller层,用户调用一个请求,只要调用cotroller即可,cotroller里面有封装各种service!调用一个cotroller会把各个service逻辑整合好,不需要暴露各个服务相关的操作!

6.策略模式在Java中的应用,这个太明显了,因为Comparator这个接口简直就是为策略模式而生的。Comparable和Comparator的区别一文中,详细讲了Comparator的使用。比方说Collections里面有一个sort方法,因为集合里面的元素有可能是复合对象,复合对象并不像基本数据类型,可以根据大小排序,复合对象怎么排序呢?基于这个问题考虑,Java要求如果定义的复合对象要有排序的功能,就自行实现Comparable接口或Comparator接口.
spring中在实例化对象的时候用到Strategy模式
在SimpleInstantiationStrategy中有如下代码说明了策略模式的使用情况:

7.原型模式:使用原型模式创建对象比直接new一个对象在性能上好得多,因为Object类的clone()方法是一个native方法,它直接操作内存中的二进制流,特别是复制大对象时,性能的差别非常明显。

8.迭代器模式:Iterable接口和Iterator接口 这两个都是迭代相关的接口,可以这么认为,实现了Iterable接口,则表示某个对象是可被迭代的;Iterator接口相当于是一个迭代器,实现了Iterator接口,等于具体定义了这个可被迭代的对象时如何进行迭代的

9,适配器模式

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

11.桥连模式!连接数据库接口

12,如果集成了dubbo还有观察者模式,消费者和生产者模式,
spring中Observer模式常用的地方是listener的实现。如ApplicationListener。

13.用了dubbo的netty协议,用了构造者模式,线程池模式

相关文章

  • spring常用设计模式

    1.工厂模式,这个很明显,在各种BeanFactory以及ApplicationContext创建中都用到了; 2...

  • 一起来学习设计模式:代理模式

    前言:代理模式在是一个java中常用的设计模式,离我们较近的有Mybatis,spring等。学会代理模式的设计思...

  • Spring 设计模式及事务

    Spring 设计模式应用 工厂设计模式 : Spring 通过 BeanFactory、ApplicationC...

  • 关于简历的优化

    熟悉常用的设计模式这点可以列举一下具体的设计模式 反射在spring ioc实例化bean中的使用是怎样的 简历上...

  • 常用设计模式

    作为学习Spring的一些基础,我们对常用设计模式也需要有一些了解。 一、基础概念 设计模式:代表了最佳的实践,开...

  • 揭秘:阿里最新Java架构技术体系

    一、源码阅读 常用设计模式 ​ Spring5源码 ​ Mybatis源码 二、分布式架构总纲 ​ ​ ​ 消息通...

  • Java架构师课程

    Java架构班开学典礼 Spring中常用的设计模式概述及工厂模式详解 单例模式及原型模式单例模式及原型模式单例模...

  • Java 常用设计模式简例

    简述Java常用设计模式 简述Java常用设计模式及设计原则 strate---------策略模式针对接口编程,...

  • Spring框架中用到了哪些设计模式

    Spring框架中用到了哪些设计模式 1.工厂设计模式:Spring使用工厂模式通过BeanFactory和App...

  • java单例模式与线程安全

    设计模式在软件架构设计中被经常使用,掌握常用的设计模式对于设计软件系统非常重要。单例模式作为设计模式中最简单和常用...

网友评论

    本文标题:spring常用设计模式

    本文链接:https://www.haomeiwen.com/subject/wplduftx.html