目录

  • 概述
  • 为什么选择以设计模式来开篇?
  • 7大设计原则
    • 开闭原则
    • 依赖倒置原则
    • 单一职责原则
    • 接口隔离原则
    • 迪米特原则
    • 里氏替换原则
    • 合成复用原则
  • 设计模式
    • 创建型模式
    • 结构型模式
    • 行为型模式
  • UML急速入门
    • UML定义
    • UML特点
    • UML2.2分类
      • 结构式图形
        • 类图
          • 记忆技巧
            • UML箭头方向:从子类指向父类
            • 实线-继承|虚线-实现
            • 实线-关联|虚线-依赖
            • 空心菱形-聚合|实心菱形-组合
      • 行为式图形
      • 交互式图形
        • 时序图

概述

按照Java设计模式精讲 Debug方式+内存分析的课程框架进行学习和理解。
这也是我第一次尝试边练习边总结的学习模式。一边按照课程学习,写代码,一边通过博客进行加深理解、疑问解析和总结。
根据18和19年的部分经验,课程时长15小时25分钟,一般按照实际难易程度,1:3至1:5。所以,大约所需时长:45小时至75小时不等
课程按照设计模式的定义、应用,加上源码解析,动态递进式讲解(场景-UML-代码),采用Debug方式+内存分析,例如声明父类引用,来指向子类的实例;也会学习JDK及热门开源框架的解析。

为什么选择以设计模式来开篇?

1.目前3年半的工作经历,前端加后端,以及配置工作,工作难度实属不高,面对的都是业务逻辑,没有特别难的地方。但是曾经基础的薄弱,逻辑的疏漏;心思不在编程;以及自身异常偏爱直觉等等系列真相,所展现的底气不足。所以现在是时候在编程上多花点心思了。

2.设计模式能在高瞻远瞩的帮助我梳理一遍Java的语法规则,而我之前工作所用语言很像Java,但是也有不少不同点,而且很多语法规则由于用的少或者根本不用,大多记得不太清楚。而我准备着手开始写一些Java的项目,这个语法的基础功正好借此机会夯实。

3.抽象思维能力

7大设计原则

开闭原则

https://blog.csdn.net/qinai700/article/details/104381641

依赖倒置原则

单一职责原则

接口隔离原则

迪米特原则

里氏替换原则

合成复用原则

设计模式

创建型模式

结构型模式

行为型模式

UML急速入门

UML定义

统一建模语言,Unified Modeling Language,非专利的第三代建模和规约语言

UML特点

开放的方法,用于说明、可视化、构建和编写一个正在开发的面向对象的、软件密集系统的制品的开放方法
最佳工程实践,对系统有更直观的认识

UML2.2分类

14种图示

结构式图形

强调的是系统式建模

类图

Class Diagram:用于表示类、接口、实例等之间相互的静态关系

记忆技巧
UML箭头方向:从子类指向父类

定义子类时需要通过extends关键字指定父类
子类一定是知道父类定义的,但父类并不知道子类的定义
只有知道对方信息时才能指向对方
所以箭头方向是从子类指向父类

实线-继承|虚线-实现

空心三角箭头:继承或实现
实线-继承,is a 关系,扩展目的,不虚,很结实
虚线-实现,虚线代表“虚”无实体

实线-关联|虚线-依赖

虚线-依赖关系:临时用一下,若即若离,虚无缥缈,若有若无
表示一种使用关系,一个类需要借助另一个类来实现功能
一般是一个类使用另一个类作为参数使用,或作为返回值

实线-关联关系:关系稳定,实打实的关系,铁哥们
表示一个类对象和另一个类对象有关联
通常是一个类中有另一个类对象作为属性

空心菱形-聚合|实心菱形-组合

菱形就是一个盛东西的器皿(例如盘子)

聚合:代表空器皿里可以放很多相同东西,聚在一起(箭头方向所指的类)
大雁群 o–> 大雁 : Aggregation
整体和局部的关系,两者有着独立的生命周期,是has a的关系
大雁群has a大雁
弱关系
消极的词:弱-空

组合:代表满器皿里已有实体结构的存在,生死与共
鸟 1 *–> 2 翅膀 : Composition
整体和局部的关系(和聚合关系相比,关系更加强烈),两者有相同的生命周期,contains a的关系
强关系
积极的词:强-满

行为式图形

强调系统模型中触发的事件

交互式图形

行为式图形的子集合,强调系统模型中资料流程

时序图

设计模式学与练-开篇(学习中)相关推荐

  1. 专业学习中,学、用英语

    中文教材和书籍中,专业术语在书中第一次出现时,对应的英语词汇会在后面的括号中给出.看到这个括号,需要留意看一看,而现在很多人却直接忽略了.很多时候英语词汇会帮助我们理解术语,在用到之时,立刻知道其意思 ...

  2. 教师计算机学情分析模板,学习《信息技术课中的学情分析之浅见》心得体会

    优秀的教师不仅要熟练的驾驭教材,更重要的还要依据学生的实际情况确定的教学重点.难点和关键点才更合理.同时,教师的教学活动又具有连续性,如体育上节课所学内容就是下节课内容的基础,所以上节课掌握的好坏又决 ...

  3. 少儿编程150讲轻松学Scratch(七)-Scratch学习中需要注意的地方

    前言 通常Scratch学习流程是,先掌握程序相关模块,并且了解各个模块的功能使用,然后通过项目的编写和练习,不断精进孩子的Scratch技术.那么Scratch学习中有那些需要注意的地方呢? 在所有 ...

  4. 新风口下:嵌入式AI学习中较好的练手项目(附代码资料/学习视频/学习规划)...

    有粉丝问我:"当前乃至未来5-10年,嵌入式开发者还有哪些风口?" 画外音:风口的本质,其实就是一段时间的人才供需不平衡.说白了就是由于行业突变,敏锐的资本快速进入,导致短时间内行 ...

  5. 深度学习这么调参训练_聊一聊深度学习中的调参技巧?

    本期问题能否聊一聊深度学习中的调参技巧? 我们主要从以下几个方面来讲.1. 深度学习中有哪些参数需要调? 2. 深度学习在什么时候需要动用调参技巧?又如何调参? 3. 训练网络的一般过程是什么? 1. ...

  6. 一文读懂深度学习中的矩阵微积分

    点击视学算法标星,更快获取CVML新技术 鱼羊 编译整理 量子位 报道 | 公众号 QbitAI 想要真正了解深度神经网络是如何训练的,免不了从矩阵微积分说起. 虽然网络上已经有不少关于多元微积分和线 ...

  7. J2EE学习中一些值得研究的开源项目(转载天极网)

    J2EE学习中一些值得研究的开源项目 这篇文章写在我研究J2SE.J2EE近三年后.前3年我研究了J2SE的Swing.Applet.Net.RMI.Collections.IO.JNI--研究了J2 ...

  8. 【经验】刚读硕士怎么感觉学机器学习和深度学习越学越不懂?

    有同学问:研一,在学机器学习和深度学习,为什么感觉越学越不会,怎么解决这个问题? 我搜集了一些意见和建议,供参考. 高赞回答一 作者:曲終人不散丶 来源:知乎 我的研一我记得是先找了一本比较薄的,通俗 ...

  9. 随学随考计算机应用基础作业1,【随学随练】统编版四年级下册语文《第一单元》一课一练带答案,快给孩子练习!...

    原标题:[随学随练]统编版四年级下册语文<第一单元>一课一练带答案,快给孩子练习! 下载完整电子版,请拉到最下方 <1.古诗词三首>同步练习题 基础积累大巩固 一.选一选,填一 ...

  10. python网络安全怎么学_新手如何学习网络安全?

    相信很多人想进入网络安全,都是听说网络安全就业前景大,薪资很高,入门门槛也相对较低,但是,对于0-2年的网安新人,要学习网络安全往往还是存在以下方面困惑和迷茫.没方向:网安种类千千万,不知道自己适合哪 ...

最新文章

  1. Java并发之synchronized
  2. ikbc键盘自动打字_键盘按斤卖,一斤一百块?IKBC W200机械键盘简晒
  3. 导入 sun.net.TelnetInputStream; 报错
  4. Java在线问题诊断工具Greys
  5. Django项目知识点(四)
  6. Ubuntu常用软件安装(小集合)
  7. 归并排序 c++_数据结构:排序(4)||有序表的归并(归并排序)、基数排序
  8. SAS (Statistics Analysis System) 统计分析系统软件
  9. 【SPPS学习一】 SPSS-26软件下载与安装步骤详解
  10. PS后期一键调出紫色梦幻红外线照片效果
  11. 阿肯色大学计算机,阿肯色大学怎么样?
  12. python转换迅雷地址为http地址
  13. 20.P153课后习题6-13 背包问题。设有一个背包可以放入物品的重量为s,现有n件物品,重量分别为w[0],w[1],...w[n-1]。问题是能否从这n件物品中选择若干件放入此背包中使得放入的重
  14. 关于《Python绝技:运用Python成为顶级黑客》的学习笔记
  15. 怎么用html实现QQ代挂功能,如何给自己的代挂网、代刷网、底部添加腾讯云智服客服代码...
  16. c语言打印一个字母圣诞树,C语言打印圣诞树
  17. Frenetic Python实验(二)
  18. allegro设置差分线
  19. Hibernate的三种检索策略
  20. 献给减肥族的四例菜谱

热门文章

  1. ZLAN_ACC ABAP程序管理工具 使用说明
  2. 传统洗护O2O平台纷纷溃败 智能洗衣会是他们的翻身的机会吗?
  3. Windows找不到文件xxxxx.exe。请确认文件名是否正确后,再试一次
  4. 虚拟光驱文件之间的转换(bin/cue/ios)
  5. 调整外接显示器的显示顺序
  6. C++ tuple模板类使用体验
  7. UPS及蓄电池监控在银行行业应用案例解析
  8. npm包从创建到发布及下载使用
  9. Hive一条SQL使用随机值创建测试表一百万条数据
  10. 【论文阅读】Neuralangelo:高保真神经表面重建