设计模式学与练-开篇(学习中)
目录
- 概述
- 为什么选择以设计模式来开篇?
- 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的关系
强关系
积极的词:强-满
行为式图形
强调系统模型中触发的事件
交互式图形
行为式图形的子集合,强调系统模型中资料流程
时序图
设计模式学与练-开篇(学习中)相关推荐
- 专业学习中,学、用英语
中文教材和书籍中,专业术语在书中第一次出现时,对应的英语词汇会在后面的括号中给出.看到这个括号,需要留意看一看,而现在很多人却直接忽略了.很多时候英语词汇会帮助我们理解术语,在用到之时,立刻知道其意思 ...
- 教师计算机学情分析模板,学习《信息技术课中的学情分析之浅见》心得体会
优秀的教师不仅要熟练的驾驭教材,更重要的还要依据学生的实际情况确定的教学重点.难点和关键点才更合理.同时,教师的教学活动又具有连续性,如体育上节课所学内容就是下节课内容的基础,所以上节课掌握的好坏又决 ...
- 少儿编程150讲轻松学Scratch(七)-Scratch学习中需要注意的地方
前言 通常Scratch学习流程是,先掌握程序相关模块,并且了解各个模块的功能使用,然后通过项目的编写和练习,不断精进孩子的Scratch技术.那么Scratch学习中有那些需要注意的地方呢? 在所有 ...
- 新风口下:嵌入式AI学习中较好的练手项目(附代码资料/学习视频/学习规划)...
有粉丝问我:"当前乃至未来5-10年,嵌入式开发者还有哪些风口?" 画外音:风口的本质,其实就是一段时间的人才供需不平衡.说白了就是由于行业突变,敏锐的资本快速进入,导致短时间内行 ...
- 深度学习这么调参训练_聊一聊深度学习中的调参技巧?
本期问题能否聊一聊深度学习中的调参技巧? 我们主要从以下几个方面来讲.1. 深度学习中有哪些参数需要调? 2. 深度学习在什么时候需要动用调参技巧?又如何调参? 3. 训练网络的一般过程是什么? 1. ...
- 一文读懂深度学习中的矩阵微积分
点击视学算法标星,更快获取CVML新技术 鱼羊 编译整理 量子位 报道 | 公众号 QbitAI 想要真正了解深度神经网络是如何训练的,免不了从矩阵微积分说起. 虽然网络上已经有不少关于多元微积分和线 ...
- J2EE学习中一些值得研究的开源项目(转载天极网)
J2EE学习中一些值得研究的开源项目 这篇文章写在我研究J2SE.J2EE近三年后.前3年我研究了J2SE的Swing.Applet.Net.RMI.Collections.IO.JNI--研究了J2 ...
- 【经验】刚读硕士怎么感觉学机器学习和深度学习越学越不懂?
有同学问:研一,在学机器学习和深度学习,为什么感觉越学越不会,怎么解决这个问题? 我搜集了一些意见和建议,供参考. 高赞回答一 作者:曲終人不散丶 来源:知乎 我的研一我记得是先找了一本比较薄的,通俗 ...
- 随学随考计算机应用基础作业1,【随学随练】统编版四年级下册语文《第一单元》一课一练带答案,快给孩子练习!...
原标题:[随学随练]统编版四年级下册语文<第一单元>一课一练带答案,快给孩子练习! 下载完整电子版,请拉到最下方 <1.古诗词三首>同步练习题 基础积累大巩固 一.选一选,填一 ...
- python网络安全怎么学_新手如何学习网络安全?
相信很多人想进入网络安全,都是听说网络安全就业前景大,薪资很高,入门门槛也相对较低,但是,对于0-2年的网安新人,要学习网络安全往往还是存在以下方面困惑和迷茫.没方向:网安种类千千万,不知道自己适合哪 ...
最新文章
- Java并发之synchronized
- ikbc键盘自动打字_键盘按斤卖,一斤一百块?IKBC W200机械键盘简晒
- 导入 sun.net.TelnetInputStream; 报错
- Java在线问题诊断工具Greys
- Django项目知识点(四)
- Ubuntu常用软件安装(小集合)
- 归并排序 c++_数据结构:排序(4)||有序表的归并(归并排序)、基数排序
- SAS (Statistics Analysis System) 统计分析系统软件
- 【SPPS学习一】 SPSS-26软件下载与安装步骤详解
- PS后期一键调出紫色梦幻红外线照片效果
- 阿肯色大学计算机,阿肯色大学怎么样?
- python转换迅雷地址为http地址
- 20.P153课后习题6-13 背包问题。设有一个背包可以放入物品的重量为s,现有n件物品,重量分别为w[0],w[1],...w[n-1]。问题是能否从这n件物品中选择若干件放入此背包中使得放入的重
- 关于《Python绝技:运用Python成为顶级黑客》的学习笔记
- 怎么用html实现QQ代挂功能,如何给自己的代挂网、代刷网、底部添加腾讯云智服客服代码...
- c语言打印一个字母圣诞树,C语言打印圣诞树
- Frenetic Python实验(二)
- allegro设置差分线
- Hibernate的三种检索策略
- 献给减肥族的四例菜谱