简单介绍23种设计模式及其在Spring中的应用

面向对象设计原则

常⽤的⾯向对象设计原则包括7个,这些原则并不是孤⽴存在的,它们相互依赖,相互补充。

开闭原则(Open Closed Principle,OCP)

单⼀职责原则(Single Responsibility Principle, SRP)

⾥⽒替换原则(Liskov Substitution Principle,LSP)

依赖倒置原则(Dependency Inversion Principle,DIP)

接⼝隔离原则(Interface Segregation Principle,ISP)

合成/聚合复⽤原则(Composite/Aggregate Reuse Principle, C/ARP)

最少知识原则(Least Knowledge Principle,LKP)或者迪⽶特法则(Law of Demeter,LOD)

什么是设计模式?

        设计模式(Design pattern)代表了最佳的实践,通常被有经验的⾯向对象 的软件开发⼈员所采⽤。设计模式是软件开发⼈员在软件开发过程中⾯临 的⼀般问题的解决⽅案。这些解决⽅案是众多软件开发⼈员经过相当⻓的 ⼀段时间的试验和错误总结出来的。

        设计模式是⼀套被反复使⽤的、多数⼈知晓的、经过分类编⽬的、代码设计经验的总结。使⽤设计模式是为了重⽤代码、让代码更容易被他⼈理 解、保证代码可靠性。 毫⽆疑问,设计模式于⼰于他⼈于系统都是多赢 的,设计模式使代码编制真正⼯程化,设计模式是软件⼯程的基⽯,如同⼤厦的⼀块块砖⽯⼀样。项⽬中合理地运⽤设计模式可以完美地解决很多 问题,每种模式在现实中都有相应的原理来与之对应,每种模式都描述了 ⼀个在我们周围不断重复发⽣的问题,以及该问题的核⼼解决⽅案,这也是设计模式能被⼴泛应⽤的原因。

设计模式分类

创建型

在创建对象的同时隐藏创建逻辑,不使⽤ new 直接实例化对象,程序在判断需要创建哪些对象时更灵活。包括⼯⼚/抽象⼯⼚/单例/ 建造者/原型模式。

结构型

通过类和接⼝间的继承和引⽤实现创建复杂结构的对象。包括适配器/桥接模式/过滤器/组合/装饰器/外观/享元/代理模式。

⾏为型

通过类之间不同通信⽅式实现不同⾏为。包括责任链/命名/解 释器/迭代器/中介者/备忘录/观察者/状态/策略/模板/访问者模式。

简单介绍23种设计模式及其在Spring中的应用_第1张图片

 Spring 使⽤了哪些设计模式

⼯⼚设计模式 : Spring 使⽤⼯⼚模式通过 BeanFactory 、 ApplicationContext 创建 bean 对象。

代理设计模式 : Spring AOP 功能的实现。

单例设计模式 : Spring 中的 Bean 默认都是单例的。

模板⽅法模式 : Spring 中 jdbcTemplate 、hibernateTemplate 等以 Template 结尾的对数据库操作的类,它们就使⽤到了模板模式。

包装器设计模式 : 我们的项⽬需要连接多个数据库,⽽且不同的客户在 每次访问中根据需要会去访问不同的数据库。这种模式让我们可以根据 客户的需求能够动态切换不同的数据源。

观察者模式: Spring 事件驱动模型就是观察者模式很经典的⼀个应⽤。

适配器模式 :Spring AOP 的增强或通知(Advice)使⽤到了适配器模式、 spring MVC 中也是⽤到了适配器模式适配 Controller 。

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