写点什么

架构师养成第三课

用户头像
万有引力
关注
发布于: 2020 年 12 月 11 日

灵活运用设计模式进行代码优化和重构

什么是设计模式

1,每一种模式都描述了一种问题的通用解决方案。这种问题在我们环境中经常出现。 2,可重复使用的解决方案

设计模式的组成

  • 模式的名称 - 概括表达设计(Observer, Adapter 等)

  • 待解问题 - 描述了合适需要运用这种模式,以及运用模式的上下文

  • 解决方案 - 抽象描述了元素及其之间的关系

  • 结论 - 使用这种方案的利弊。主要包括对系统弹性,扩展性和可移植性的影响

重点思考设计模式解决了什么问题

设计模式的分类

从功能分

  • 创建模式 - 对类的实例化过程进行抽象

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

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

从方式分

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

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

重要设计模式

单例模式

  • 价值提升性能满足特定需求(某种资源)

  • 实现饿汉模式 - 直接初始化静态变量懒汉模式 - 实际使用时创建,使用同步锁保证不重复创建

  • 对外提供服务,无状态

简单工厂模式

  • 使用工厂模式创建职责类似的类

  • 可以使用配置文件的方式,确保调用方和工厂类都满足开闭原则

适配器模式

  • 针对类的适配器,继承和实现对应的类和接口

  • 针对对象的适配器,实现对应的接口,组合对应的类

模板模式

  • 在父类中定义和实现逻辑框架,真正的业务逻辑是个抽象方法

  • 在子类中必须实现业务逻辑抽象方法,利用多态减少代码量

策略模式

  • 调用方针对接口编写逻辑

  • 若干个类实现了相同的接口

  • 依赖的对象由运行时按实际需求传入

组合模式

  • 用于组织树形关系的对象

  • 这些对象都实现了统一的抽象类或接口

  • 对象分为叶子节点和容器节点

  • 例如 draw 窗体中的所有 widget

装饰器模式

  • 用组合的方式引入实现了同样接口的对象

  • 接口方法中,先实现自身逻辑,再调用组合对象的接口


发布于: 2020 年 12 月 11 日阅读数: 27
用户头像

万有引力

关注

还未添加个人签名 2018.05.30 加入

还未添加个人简介

评论

发布
暂无评论
架构师养成第三课