案例讲解,设计模式定义
第五课
上章节回顾:
1.软件设计第一原则:
1.开/闭原则(OCP):不需要修改软件实体(类、模块、函数等),就能实现功能扩展,关键字:抽象
1.对于扩展是开放的
2.对于更改是封闭的
2.软件设计第二原则:依赖倒置原则(DIP)
DIP:Dependency Inversion Principle
1.高层模块不能依赖低层模块,而是大家都依赖于抽象;
2.抽象不能依赖实现,而是实现依赖抽象
3.OOD 原则三:Listov替换原则(LSP)
简而言之: 子类型必须能够替换调他们的基类型
4.OOD原则四 : 单一职责原则(SRP)
SRP - Single Responsibiliy Principle
1.又称为”内聚性原则“,意为:一个模块的组成元素之间的功能相关性
2.将它与引起一个模块发生变化的操作关联,就形成了:一个类只能有一个引起他变化的原因
5.OOD原则五:接口分离原则(ISP)
ISP : Interface Segregation Principle
1.不应该强迫客户程序依赖他们不需要的方法
ISP和SRP是相关的,都和”内聚性“有关
SRP指出应该如何设计一个类,只能有一种原因才能促使类发生改变。
ISP指出应该如何设计一个接口,从客户需要的出发,强调不用让客户看到他们不需要的方法
作业练习讲解。
案例:反应式编程框架Flower的设计
1.
2.为什么Flower可以显著提升系统性能
Flower实现异步的基础是Akka的Actor
flwoer的分布式异步微服务解决方案
设计模式的作用
设计模式的定义:
1.什么是设计模式?
a.每一种模式都描述了一种问题的通用解决方案。
b.设计模式是一种可重复使用的解决方案
2.设计模式的四个部分:
a.模式的名称:由少量字组成的名称,有助于我们表达我们的设计
b.待解决的问题:描述何时需要运用这种模式,以及运用模式的环境
c.解决方案:描述了组成设计的元素(类和对象)、他们的关系、职责以及合作。但这种解决方案是抽象的,不代表具体实现。
d.结论:运用这种方案所带来的利弊。主要指对系统的弹性、扩展性、可移植性的影响
设计模式的分类:
从功能分
1.创建模式:对类的实例化过程的抽象
2.结构模式:将类或对象结合在一起形成更大的结构
3.行为模式:对在不同的对象之间划分责任和算法的抽象化
从方式分:
类模式:以继承的方式实现模式,静态的
对象模式:以组合的方式实现模式,动态的
设计模式案例:
1.简单工厂模式
2.单例模式
3.适配器模式
评论