Java设计模式一:一文看懂设计模式

前言

在学习Spring框架时候,Spring源码内部使用了很多设计模式。Spring架构使用了哪些设计模式呢?带着这些疑问,了解下Java常见设计模式是有必要的。

什么是设计模式

设计模式(Design Pattern)是一套被反复实践使用、多数人知晓的、经过分类的、代码设计可重用的软件设计方式。

为什么要用设计模式

  • 设计模式是经过大量实践检验的安全高效可复用的解决方案。不要重复发明轮子,而且大多数时候你发明的轮子还没有已有的好
  • 设计模式是被主流工程师/架构师所广泛接受和使用的,你使用它,方便与别人沟通,也方便别人code review(这个够实在吧)
  • 使用设计模式可以帮你快速解决80%的代码设计问题,从而让你更专注于业务本身
  • 设计模式本身是对几大特性的利用和对几大设计原则的践行,代码量积累到一定程度,你会发现你已经或多或少的在使用某些设计模式了

设计模式基础

设计模式是一种利用OOP的封闭、继承和多态三大特性,同时在遵循面向对象设计(OOD)有大原则单一职责原则开闭原则里氏替换原则迪米特法则依赖倒置原则接口隔离原则及合成/聚合复用原则的前提下

总体来说设计模式分为三大类:

  • 创建型模式(5种)
  • 结构型模式(7种)
  • 行为型模式(11种)

创建型模式,共五种: 工厂方法模式、 抽象工厂模式、 单例模式、 建造者模式、原型模式。

结构型模式,共七种: 适配器模式、装饰器模式、 代理模式、外观模式、桥接模式、组合模式、 享元模式。

行为型模式,共十一种: 策略模式、模板方法模式、 观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。

Spring中都用到了哪些设计模式【重点】

  • 工厂设计模式 : Spring使用工厂模式通过 BeanFactory、ApplicationContext 创建 bean 对象。
  • 代理设计模式 : Spring AOP 功能的实现。
  • 单例设计模式 : Spring 中的 Bean 默认都是单例的。
  • 模板方法模式 : Spring 中 jdbcTemplate、hibernateTemplate 等以 Template 结尾的对数据库操作的类,它们就使用到了模板模式。
  • 包装器设计模式 : 我们的项目需要连接多个数据库,而且不同的客户在每次访问中根据需要会去访问不同的数据库。这种模式让我们可以根据客户的需求能够动态切换不同的数据源。
  • 观察者模式: Spring 事件驱动模型就是观察者模式很经典的一个应用。
  • 适配器模式 :Spring AOP 的增强或通知(Advice)使用到了适配器模式、spring MVC 中也是用到了适配器模式适配Controller。
  • 策略模式:定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化。如:SimpleInstantiationStrategy

 

你可能感兴趣的:(Java设计模式)