[架构师训练营] Week03 - 学习总结

用户头像
谭方敏
关注
发布于: 2020 年 07 月 16 日

设计模式

什么是设计模式?

 

每一种模式都描述了一种文体的通用解决方案。这种问题在我们的环境中,不停地出现。设计模式是一种可重复使用的解决方案。

 

一个设计模式的四个部分:

         模式的名称:由少量的字组成的名称,有助于表达我们的设计。

         待解问题:描述了何时需要运用这种模式,以及运用模式的环境(上下文)

         解决方案:描述了组成设计的元素(类和对象), 他们的关系,职责以及合作。但这种解决方案是抽象的,他不代表具体的实现。

         结论:运用这种方案所带来的利和弊,主要是指它对系统的弹性,扩展性,和可移植性的影响。

 

设计模式分类

适应设计模式

         Iterator模式 一个一个遍历

         Adapter模式 加个适配器以便复用

         系统需要使用现有的类,而这个类的接口与我们所需要的不同,常见的场景是数据库适配器(mysql, mongodb)。把某个对象已经提供的方法适配成另外一种接口或者方法。不建议做类适配器,而建议使用对象适配器。

 

交给子类

         Template Method模式 将具体处理交给子类

         基类负责算法的轮廓和骨架

         子类负责算法的具体实现

         Factory Method模式 将实例的生成交给子类

 

生成实例

         Singleton模式 只有一个实例

         使用singleton原因:

                  性能需求:只有一个实例,可以减少实例频繁创建和销毁带来的资源消耗. 这个是性能需求

                  功能需求:当多个用户使用这个实例的时候,便于进行统一控制(打印机对象)。

         Prototype模式 通过复制生成实例

Build模式 组装复杂的实例

         AbstractFactory 将关联零件组装成产品

 

分开考虑

         Bridge模式 将类的功能层次跟实现层次分离

         Strategy模式 整体地替换算法

         通过组合的方法来实现扩展,应用程序针对抽象类去编程,实际执行的却是实现类。

一致性

         Composite模式 容器与内容的一致性

         Decorator模式 装饰边框与被装饰物的一致性

         在不改变对客户端的接口的前提下扩展现有现象的功能。

访问数据结构

         Visitor模式 访问数据结构并处理数据

         Chain of Responsibility 模式 推卸责任

简单化

         Façade模式 简单窗口

         Mediator模式 只有一个仲裁者

管理状态

         Observer模式 发送状态变化通知

         Memento模式 保存对象状态

         State模式 用类来保存状态

避免浪费

         FlyWeight模式, 共享对象,避免浪费

         Proxy模式, 只在必要的时候生成实例

用类来表示

         Command模式 命令也是类

         Interpreter模式 语法规则也是类

参考:图解设计模式.

用户头像

谭方敏

关注

还未添加个人签名 2019.10.22 加入

还未添加个人简介

评论

发布
暂无评论
[架构师训练营] Week03 - 学习总结