没有合适的资源?快使用搜索试试~ 我知道了~
Tom_深入分析Spring5源码1
需积分: 0 1 下载量 51 浏览量
2022-08-08
22:31:50
上传
评论
收藏 21.28MB DOCX 举报
温馨提示
试读
225页
Spring5源码分析(第2版)第一章从现实生活理解Spring中常用的设计模式一、Spring中常用的设计模式1、我们通常说的23种经典设计模式可以通过下表一
资源详情
资源评论
资源推荐
Spring5 源码分析(第 2 版)
第一章
从现实生活理解 Spring 中
常用的设计模式
一、Spring 中常用的设计模式
1、我们通常说的 23 种经典设计模式可以通过下表一目了然:
分类
设计模式
创建型
工 厂 方 法 模 式 ( FactoryMethod )、 抽 象 工 厂 模 式
( AbstractFactory )、 建 造 者 模 式 ( Builder )、 原 型 模 式
(Prototype)、单例模式(Singleton)
结构型
适 配 器 模 式 (Adapter) 、 桥 接 模 式 ( Bridge )、 组 合 模 式
(Composite)、装饰器模式(Decorator)、门面模式(Facade)、
享元模式(Flyweight)、代理模式(Proxy)
行为型
解释器模式(Interpreter)、模板方法模式(TemplateMethod)、
责任链模式(ChainofResponsibility)、命令模式(Command)、迭
代器模式(Iterator)、调解者模式(Mediator)、备忘录模式
(Memento)、观察者模式(Observer)、状态模式(State)、策略
模式(Strategy)、访问者模式(Visitor)
通常来说,设计模式都是混合使用,不会独立应用。利用穷举法充分理解
设计模式的应用场景。在平时的应用中,不是用设计模式去生搬硬套,而
是根据具体业务问题需要时借鉴。
2、设计模式在应用中遵循六大原则:
a、开闭原则(OpenClosePrinciple)
开闭原则就是说对扩展开放,对修改关闭。在程序需要进行拓展的时候,
不能去修改原有的代码,实现
一个热插拔的效果。所以一句话概括就是:为了使程序的扩展性好,易于
维护和升级。想要达到这样的
效果,我们需要使用接口和抽象类,后面的具体设计中我们会提到这点。
b、里氏代换原则(LiskovSubstitutionPrinciple)
里氏代换原则(LiskovSubstitutionPrincipleLSP)
面向对象设计的基本原则之一。里氏代换原则中说,任何基类可以出现的
地方,子类一定可以出现。LSP 是继承复用的基石,只有当衍生类可以替
换掉基类,软件单位的功能不受到影响时,基类才能真正被复用,而衍生
类也能够在基类的基础上增加新的行为。里氏代换原则是对“开-闭”原则
的补充。实现“开-闭”原则的关键步骤就是抽象化。而基类与子类的继承
关系就是抽象化的具体实现,所以里氏代换原则是对实现抽象化的具体步
骤的规范。
c、依赖倒转原则(DependenceInversionPrinciple)
这个是开闭原则的基础,具体内容:针对接口编程,依赖于抽象而不依赖
于具体。
d、接口隔离原则(InterfaceSegregationPrinciple)
这个原则的意思是:使用多个隔离的接口,比使用单个接口要好。还是一
个降低类之间的耦合度的意思,从这儿我们看出,其实设计模式就是一个
软件的设计思想,从大型软件架构出发,为了升级和维护方便。所以上文
中多次出现:降低依赖,降低耦合。
e、迪米特法则(最少知道原则)(DemeterPrinciple)
为什么叫最少知道原则,就是说:一个实体应当尽量少的与其他实体之间
发生相互作用,使得系统功能模块相对独立。
f、合成复用原则(CompositeReusePrinciple)
原则是尽量使用合成/聚合的方式,而不是使用继承。
设计模式之间的关系图
接下来我们只介绍在 Spring 中常用的设计模式。
1.1、简单工厂模式(Factory)
应用场景:又叫做静态工厂方法(StaticFactoryMethod)模式,但不属于 23
种设计模式之一。简单工厂模式的实质是由一个工厂类根据传入的参数,
动态决定应该创建哪一个产品类。
Spring 中的 BeanFactory 就是简单工厂模式的体现,根据传入一个唯一的标
识来获得 Bean 对象,但是否是在传入参数后创建还是传入参数前创建这
个要根据具体情况来定。
归类
特点
穷举
创 建 型 模
是复杂工厂模式的思维模型
批量生产、标准化
式
1.2、工厂方法模式(FactoryMethod)
应用场景:通常由应用程序直接使用 new 创建新的对象,为了将对象的创
建和使用相分离,采用工厂模式,即应用程序将对象的创建及初始化职责交
给工厂对象。
一般情况下,应用程序有自己的工厂对象来创建 Bean.如果将应用程序自己
的工厂对象交给 Spring 管理,那么 Spring
管理的就不是普通的 Bean,而是工厂 Bean。
归类
特点
穷举
创 建 型 模
式
对于调用者来说,隐藏了复杂的逻
辑处理过程,调用者只关心执行结
果。
对于工厂来说要对结果负责,保证
生产出符合规范的产品。
流水线生产
1.3、单例模式(Singleton)
应用场景:保证一个类仅有一个实例,并提供一个访问它的全局访问点。
Spring 中 的 单 例 模 式 完 成 了 后 半 句 话 , 即 提 供 了 全 局 的 访 问 点
BeanFactory。但没有从构造器级别去控制单例,这是因为 Spring 管理的是
是任意的 Java 对象。Spring 下默认的 Bean 均为单例。
归类
特点
穷举
创 建 型 模
式
保证从系统启动到系统终止,全过
程只会产生一个实例。
当我们在应用中遇到功能性冲突的
时候,需要使用单例模式。
配置文件、日历、OC 容
器
剩余224页未读,继续阅读
df595420469
- 粉丝: 22
- 资源: 310
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0