目的

  几乎是程序员就都知道或者了解设计模式,但大部分小伙伴写代码总是习惯于一把梭。
无论多少业务逻辑就一个类几千行,这样的开发也可以归纳为三步;定义属性、创建方法、调用展示,Done!只不过开发一时爽,重构火葬场。
好的代码不只为了完成现有功能,也会考虑后续扩展。在结构设计上松耦合易读易扩展,在领域实现上高内聚不对外暴漏实现细节不被外部干扰。而这就有点像家里三居(MVC)室、四居(DDD)室的装修,你不会允许几十万的房子把走线水管裸漏在外面,也不会允许把马桶放到厨房,炉灶安装到卫生间。
其实有一部分人并没有仔细阅读过设计模式的相关书籍和资料,但依旧可以编写出优秀的代码。这主要是由于在经过众多项目的锤炼和对程序设计的不断追求,从而在多年编程历程上提炼出来的心得体会。而这份经验最终会与设计模式提到的内容几乎一致,同样会要求高内聚、低耦合、可扩展、可复用。你可能也遇到类似的经历,在学习一些框架的源码时,发现它里的某些设计和你在做开发时一样。

认识UML

a.什么是UML?
  UML是Unified Model Language的缩写,中文是统一建模语言,是由一整套图表组成的标准化建模语言。
b.为什么要用uml
  通过使用UML使得在软件开发之前, 对整个软件设计有更好的可读性,可理解性,从而降低开发风险。同时,也能方便各个开发人员之间的交流。
c.UML图中有哪些内容,表示什么含义?

整体UML图

符合 含义 示列
+ 代表 public + publicField;String
- 代表 private - privateField;int
# 代表 protected # protectedField;double
~ 代表 default ~ defaultField;char
下划线 代表 static + staticField:char
*斜体* 代表abstract - privateField;int
*:后边String* 代表属性类型或者返回值 - privateField;int

示列

更详细的讲解详见视频教程(建议电脑观看清晰)https://www.bilibili.com/video/BV1eR4y1A726?spm_id_from=333.999.0.0

设计模式(一)认识UML图提升代码阅读与设计能力相关推荐

  1. 【设计模式】设计模式概述以及UML图

    设计模式概述以及UML图 设计模式概述 1. 设计模式的概念 2. 学习设计模式的必要性 3. 设计模式的分类 UML图 1. 什么是UML图 2. 类图的概念和作用 3. 类图的表示法 4. 类与类 ...

  2. 图形化代码阅读工具——Scitools Understand

    Scitools出品的Understand 2.0.用了很多年了,比Source Insight强大很多.以前的名字叫Understand for C/C++,Understand for Java, ...

  3. 设计模式(一)----设计模式概述及UML图解析

    1.设计模式概述 1.1 软件设计模式的产生背景 "设计模式"最初并不是出现在软件设计中,而是被用于建筑领域的设计中. 1977年美国著名建筑大师.加利福尼亚大学伯克利分校环境结构 ...

  4. 设计模式——概述、UML图、原则

    文章目录 1,设计模式概述 1.1 软件设计模式的产生背景 1.2 软件设计模式的概念 1.3 学习设计模式的必要性 1.4 设计模式分类 2,UML图 2.1 类图概述 2.2 类图的作用 2.3 ...

  5. 【设计模式学习01】设计模式概述,UML图,软件设计原则

    文章目录 1. 设计模式概述 1.1 软件设计模式的产生背景 1.2 软件设计模式的概念 1.3 学习设计模式的必要性 1.4 设计模式分类 2. UML图 2.1 类图概述 2.2 类图的作用 2. ...

  6. 设计模式----组合模式UML和实现代码

    2019独角兽企业重金招聘Python工程师标准>>> 一.什么是组合模式? 组合模式(Composite)定义:将对象组合成树形结构以表示'部分---整体'的层次结构.组合模式使得 ...

  7. js设计模式与绘制UML图 - 打车的面试题

    题干描述 打车时,你可以打快车和专车 无论什么车,都有车牌号和车辆名称 打不同的车价格不同,快车每公里 1 元,专车每公里 2 元 打车时,你要启动行程并显示车辆信息 结束行程,显示价格(假定行驶了 ...

  8. 设计模式----模板方法模式UML和实现代码

    2019独角兽企业重金招聘Python工程师标准>>> 一.什么是模板方法模式? 模板方法模式(Template Method) 定义一个操作中算法的骨架,而将一些步骤延迟到子类中. ...

  9. 类与类关系的UML图与代码表现

    一 : 二 : 三 : 四 : 五 : 类与类之间的关系对于理解面向对象具有很重要的作用,存在以下关系: (1)泛化(Generalization) :狗与动物 (空箭头) (2)关联(Associa ...

最新文章

  1. Linux日志系统-05:案例1-实现临时日志文件滚动分割
  2. java 异常_Java学习——异常与异常处理
  3. 查询shared_pool主要部分的使用率
  4. 深入了解以太坊虚拟机第5部分——一个新合约被创建后会发生什么
  5. Yii抛出的各种异常
  6. c 向html页面传值,html页面之间的传值,获取元素和方法的调用
  7. Android高性能ORM数据库DBFlow入门
  8. 经典面试题(三):ASP.NET部分----ASP.NET 页面之间传递值的几种方式
  9. 第八届“图灵杯”NEUQ-ACM程序设计竞赛个人赛——E题 Seek the Joker II
  10. mysql如何安装sys,linux下如何安装新版的mysql
  11. 基于块分割及CNN的文档矫正与光照消除方法 (有源码和数据)
  12. 【口语语言理解】新分类!全总结!最新Awesome-SLU-Survey资源库开源!
  13. Spring源码之FactoryBean接口的作用和实现原理
  14. 服务器部署文档模板,完整word版)部署文档模板
  15. linux centeros 操作系统
  16. Android开发入门前准备
  17. 在windows 20003 下IIS6.0支持PHP的配置方
  18. 请教:使用或移植过xprivacy的请进
  19. 设置plsql永久注册码
  20. python应用seo_Python有助于学习SEO吗?

热门文章

  1. 淘宝dns解析错误导致首页打不开
  2. 区块链的信任机制--从制度信任到机器信任
  3. Netty教程-Channel
  4. nii格式和nii.gz格式详解
  5. 双E5 2696v3 换利民TA120EX散热器记录
  6. fastboot下烧录img文件
  7. 公司测试部门来了个00后卷王,测试老鸟感叹真的干不过,但是...
  8. 转:正则表达式之 贪婪与非贪婪模式详解
  9. (二) Carla_Ros_Bridge安装教程
  10. 关于生病解读学习,读书笔记