前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >设计模式之总述

设计模式之总述

作者头像
CoreDao
发布2021-04-13 10:40:41
4020
发布2021-04-13 10:40:41
举报
文章被收录于专栏:BigData_FlinkBigData_Flink

A1 为什么学设计模式

  1. 潜移默化提升对技术的理解
  2. 写出高效、可扩展、可读、可维护的高质量代码
  3. 应对面试
  4. 提高复杂代码设计和开发能力
  5. 读源码和学框架事半功倍

A2 何为高质量代码

最常见的标准:

  • 可维护性(maintainabilty)
代码语言:txt
复制
- 在不破坏原有代码设计、不引入新的Bug的情况下,能够快速地修改或者添加代码。
- 具体:代码分层清晰、模块化好、高内聚低耦合、遵从基于接口而非实现编程的设计原则等。可读性(readability)
代码语言:txt
复制
- 符合编码规范、命名达意、注释详尽、函数长短合适、模块划分清晰、符合高内聚低耦合。可扩展性(extensibility)
代码语言:txt
复制
- 代码预留了一些功能扩展点,可把新功能代码,直接插到扩展点上,而不需要为添加一个功能而大动干戈,改动大量原始代码。灵活性(flexibility)
代码语言:txt
复制
- 易扩展,易复用,易用简洁性(simplicirty)
代码语言:txt
复制
- KISS原则:Keep It Simple, Stupid。
- 尽量保持代码简单、逻辑清晰:易读、易维护。
- 思从深而行从简,真正高手能云淡风轻地用最简单的方法解决最复杂的问题。可复用性(reusability)
代码语言:txt
复制
- 尽量减少重复代码的编写,复用已有的代码。
- 联系DRY(Don`t Repeat Yourself)设计原则。可测试性(testability)
代码语言:txt
复制
- 从侧面展现代码是否高质量

A3 面向对象 设计原则 设计模式 编程规范 重构

3.1 面向对象

目前主流编程范式/风格:

  • 面向过程
  • 面向对象(最主流)
  • 函数式编程

重点:

  1. 四大特性:封装、抽象、继承、多态
  2. 与面向过程编程的区别和联系
  3. 面向对象分析、设计、编程
  4. 接口和抽象类的区别以及各自的应用场景
  5. 基于接口而非实现编程的设计思想
  6. 多用组合少用继承的设计思想
  7. 面向过程的贫血模型和面向对象的充血模型

3.2 设计原则

指导我们代码设计的一些经验总结。

常用设计原则:

  1. SOLOD 原则
    • SRP 单一职责原则
    • OCP 开闭原则
    • LSP 里氏替换原则
    • ISP 接口隔离原则
    • DIP 依赖倒置原则
  2. DRY 原则
  3. KISS 原则
  4. YAGNI 原则
  5. LOD 原则

3.3 设计模式

针对软件开发中经常遇到的一些设计问题,总结出来的一套解决方案或者设计思路。

大部分设计模式都是解决代码的可扩展性。

经典设计模式23种。

主要分类:

  1. 创建型
代码语言:txt
复制
- 常用:单例模式、工厂模式(工厂方法和抽象工厂)、建造者模式
- 不常用:原型模式结构型
代码语言:txt
复制
- 常用:代理模式、桥接模式、装饰者模式、适配器模式
- 不常用:门面模式、组合模式、享元模式行为型
代码语言:txt
复制
- 常用:观察者模式、模板模式、策略模式、职责链模式、迭代器模式、状态模式
- 不常用:访问者模式、备忘录模式、命令模式、解释器模式、中介模式

3.4 编程规范

主要解决代码的可读性问题。

起码掌握基本的编码规范。

3.5 代码重构

因软件是不停迭代的,故代码需不停堆砌,原设计会存在一些问题,解决办法就是代码重构。

持续重构是保持代码质量不下降的有效手段。

重构的工具:面向对象设计思想、设计原则、设计模式、编码规范。

知识点:

  • 重构的目的(why)、对象(what)、时机(when)、方法(how);
  • 保证重构不出错的技术手段:单元测试和代码的可测试性;
  • 两种不同规模的重构:大重构(大规模高层次)和小重构(小规模低层次)。

3.6 五者关系

  1. 基础:面向对象
  2. 指导:设计原则
  3. 思路:设计模式
  4. 可读:编程规范
  5. 持续:重构

目的:保持或提高代码质量

串起来:

  • 面向对象的丰富特性,可实现多种复杂设计思路,为设计原则和设计模式等编码实现提供基础
  • 设计原则指导我们设计代码和代码模式的经验和总结。
  • 设计模式是总结的针对问题的解决方案和设计思路,提高代码可扩展性。
  • 编程规范解决代码可读性,持续的小重构依赖的理论基础主要就是编程规范。
  • 重构可使代码持续化,保持代码活力和质量。通过前四种理论实现。

A4 相关

下集:面向对象之总述

参考文献

极客时间:设计模式之美.王争。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-03-08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • A1 为什么学设计模式
  • A2 何为高质量代码
  • A3 面向对象 设计原则 设计模式 编程规范 重构
    • 3.1 面向对象
      • 3.2 设计原则
        • 3.3 设计模式
          • 3.4 编程规范
            • 3.5 代码重构
              • 3.6 五者关系
              • A4 相关
              • 参考文献
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档