第三周 代码重构 学习笔记

用户头像
应鹏
关注
发布于: 2020 年 10 月 04 日
第三周 代码重构 学习笔记

1. 设计模式:使用设计模式优化排序工具包的设计



什么是设计模式



  • 为解决反复出现的一种问题而总结的可重复使用的的通用解决方案



设计模式组成



  • 名称:少量字组成,用于表达设计模式

  • 待解问题:何时需要用到设计模式,以及运用设计模式的环境

  • 解决方案:组成设计模式的元素(类和对象)、关系、职责以及合作

  • 结论:对系统弹性、扩展性、可移植性等方面的影响



设计模式分类



功能上



  • 创建模式:对类的实例化过程的抽象

  • 结构模式:将类或者对象结合在一起形成更大的结构

  • 行为模式:对在不同的对象之间划分责任和算法的抽象化



方式上



  • 类模式:以继承的方式实现模式,静态的

  • 对象模式:以组合的方式实现模式,动态的



简单工厂模式



  • 改进为动态配置方式,对client和factory满足ocp



2. 设计模式:Singleton单例模式



单例模式



  • 性能上,减少频繁创建和销毁实例带来的资源消耗

  • 功能上,多个用户使用同一个实例可以统一控制



适配器模式



  • 定义一个适配器类,适配现有类以满足新的要求

  • 类适配器:继承被适配类,实现新功能接口

  • 对象适配器:组合被适配类,实现新功能接口



3. JUnit中的设计模式



模板方法模式



  • 通过继承方式扩展功能。基类负责骨架,子类负责具体实现



形式



  • 抽象方法:强制子类实现

  • 具体方法:子类可以使用和覆盖

  • 钩子方法:用于特定时机使用,缺省空的实现,子类可以覆盖



策略模式



  • 通过组合方式扩展功能

  • 将使用策略的人与策略的具体算法分离



组合模式



  • 使用树形结构来组合一组相似而有层次的对象



装饰器模式



  • 在不改变对客户端的接口的前提下,扩展现有对象的功能,形成一条链



4. Spring中的设计模式



依赖注入与控制反转



  • 不需要自己创建被依赖的对象,而是声明依赖关系,然后由外部注入



单例模式



  • 由容器管理创建对象



MVC模式



  • 通过控制器对视图和模型分离



5. 设计模式案例:Intel大数据SQL引擎&Panthera设计模式



  • 单一职责、代码复用、易于扩展、团队协作开发



申明:本文图片部分来自网络和李智慧老师课件

发布于: 2020 年 10 月 04 日 阅读数: 15
用户头像

应鹏

关注

还未添加个人签名 2020.08.25 加入

还未添加个人简介

评论

发布
暂无评论
第三周 代码重构 学习笔记