架构师训练营 - 学习笔记 - 第三周
设计模式
一、创建型
1.工厂模式
简单工厂
当每个对象的创建逻辑都比较简单的时候,将多个对象的创建逻辑放到一个工厂类中,这个类就是简单工厂。
简单工厂的代码实现中,有多处 if 分支判断逻辑,不符合开闭原则,可以对简单工厂进行改造,将 if 分支判断逻辑放入到配置文件中,这样就符合开闭原则了。
最后还可以通过配置的方式来进一步的消除简单工厂的对象创建。
2.模式
一个类只允许创建一个对象,这种设计模式就叫单例。
单例的实现由多种:
• 饿汉式
• 懒汉式
• 双重检测
• 静态内部类
二、结构型
1.适配器模式
适配器模式是用来做适配,将不兼容的接口转换为可兼容的接口,让原本由于接口不兼容而不能一起工作的类可以一起工作。适配器模式有两种实现方式:
• 类适配器
• 对象适配器
实际开发中,什么情况下会出现接口不兼容?
• 封装有缺陷的接口设计
• 统一多个类的接口设计
• 替换依赖的外部系统
• 兼容老版本接口
• 适配不同格式的数据
2.装饰模式
装饰者主要解决继承关系过于复杂的问题,通过组合来替代继承。
主要作用是给原始类添加增强功能,同时还可以给原始类嵌套使用多个装饰器。
装饰模式和适配器模式的区别是:装饰模式不改变原有接口,而适配器模式会改变接口。
3.组合模式
将一组对象组织成树形结构,将单个对象和组合对象都看做树中的节点,以统一处理逻辑,并且它利用树形结构的特点,递归地处理每个子树,依次简化代码实现。
三、行为型
1.模板方法
模板模式在一个方法中定义一个算法骨架,并将某些步骤推迟到子类中实现。
模板模式有两大作用:
• 复用
复用指所有的子类可以复用父类中提供的模板方法的代码
• 扩展
扩展指框架通过模板模式提供功能扩展点,让框架用户可以在不修改框架源码的情况下,基于扩展点定制化框架的功能。
评论