架构师训练营第 1 期第三周学习总结
设计模式
定义
每种模式描述的是一种类型问题的通用解决方案,是属于一种可重复使用的解决方案
四要素
模式名称 - 少量词汇组成的名字,有助于我们表达设计
待解问题 - 描述何时何地运用这种模式
解决方案 - 描述组成设计的元素(类和对象)、它们的关系、职责以及合作。注意:解决方案是抽象的,不是代表具体实现
结论 - 运用这种方案的带来的利和弊。主要针对其对系统的弹性、扩展性和移植性的影响,相当于事物的一体两面性
分类
功能划分:
创建模式:关于类的实例化过程的抽象
结构模式:类与对象结合组合成更大的结构
行为模式:对在不同的对象之间划分责任和算法的抽象
方式划分:
类模式:以继承的方式实现模式,属于静态的
对象模式:以组合的方式实现模式,属于动态的
单例模式
使用因素:
性能需求:只有一个实例,可减少实例频繁创建和销毁带来的资源开销
功能需求:使用一个实例,便于多用户场景使用下进行统一控制
适配器模式
基于已存在满足新需求的现有功能的类,但是类的接口与需要的不一致,我们通过定义我们需要使用的接口,定义其相关的实现类,在实现类中进行整合现有功能类的调用,以此来达成我们需要的需求目的
模版方法模式
属于一种类的行为模式
通过继承的方式类实现扩展:
基类负责算法的轮廓和骨架
子类负责算法的具体实现
形式:
抽象方法:可强制子类实现相关步骤
具体方法:不需子类强制覆盖,可选择性覆盖,基类可使用final类控制可否覆盖
钩子方法:子类可选择性覆盖,在特定的时机执行相关事物
策略模式
属于一种对象的行为模式
是通过组合的方法来实现扩展
使用时机:
系统在多种处理中选择其一
重构系统,条件语句可转换成策略的多态性调用
对比模版方法的优点:
将策略的使用者和策略的具体实现进行了分离
策略对象可以自由组合
可能存在的问题:
只封装了策略的具体实现,但是其使用时机必须有客户端来决定
组合模式
属于一种对象的结构模式
组合优于继承
装饰器模式
属于一种对象的结构模式
作用:
在不改变对客户端的接口前提下,扩展现有对象的功能
评论