Java工作生活程序员

看图学习23种设计模式(二)

2019-10-28  本文已影响0人  问题_解决_分享_讨论_最优

访问者模式

核心思想:将数据结构和数据操作分离;

工业级应用案例:JDK中的FileVisitor类;Spring中的BeanDefinitionVisitor类;

适配器模式

工业级案例:Spring aop中MethodBeforeAdviceAdapter适配器,用于将advice转换为拦截器;

桥接模式

工业级案例:JDBC中的Driver和Connection之间是通过DriverManager类进行桥接的;

组合模式

工业级案例:mybatis中的MixedSqlNode类,JDK中的Map类等;

装饰器模式

工业级案例:JDK中的BufferInputStream;

外观模式

工业级案例:java中的javax.faces.webapp.FacesServlet类;以及Class类的forName方法等;

享元模式

工业级案例:Java String类型就实现了享元模式;Integer的缓存机制等;

代理模式

工业级应用:java提供了JDK动态代理、CGLIB动态代理,Spring中面向切面编程(AOP)也使用到了代理模式;

抽象工厂模式

工业级案例:

建造者模式

工业级案例:JDK中的StringBuilder;

工厂方法模式

工业级案例:Spring中的BeanFactory类,通过newInsyance方法来创建类;

原型模式

核心思想:通过复制对象本身来创建对象,比如java中的clone方法(浅拷贝)

工业级案例:java中的clone方法实际上是原型模式应用之一,快速创建对象;(对于String类字符串,可以认为是深拷贝)

单例模式

工业级应用:spring创建bean默认采用单例模式

优点:

节省资源消耗,如:内存开销;

有利于优化控制共享资源的访问调度,比如线程池、连接池;

实例创建上跟具有灵活可控性,因为实例的创建一般是在类内部进行的;比如懒加载、双重锁校验等等;

需要查看更加详细内容请进入:风吟个人博客

上一篇 下一篇

猜你喜欢

热点阅读