张晗的个人博客

技术的价值是业务

模式描述

模板方法(Template Method)模式,定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定步骤。

优点

  1. 实现了反转控制;
  2. 给子类提供了扩展的钩子 hook;

缺点

应用场景

  1. 实现算法不变的部分,将可变行为留给子类来实现;
  2. 子类中公共的行为被提取到父类,避免代码重复;
  3. 限制子类扩展
阅读全文 »

DATE CHANGELOG
2023年4月29日 初始化
2023年5月7日 增加换行快捷键

Markdown

Markdown 和 HTML 类似,是一种标记语言。它使用少量的标签和语法来修饰纯文本内容,使得文本更具可读性。

优势

  1. 平台独立。任何 os 都可以方便的创建和浏览;
  2. 适用一切。创建网站、书籍、email 和技术文档都可以使用 Marddown 编写;
  3. 广泛支持。大量论坛、网站、桌面程序和 Web 程序都支持;

用途

  1. 写文章;
  2. 项目的 README;

Typora

Typora 类似于 Windows 中的记事本,是一个专门用来创建和编写 Markdown 的软件。

最佳实践

在 Typora 上写 Markdown 如虎添翼,下面会介绍自己在学习工作中使用 Typora 中快捷键编写 Markdown 的最佳实践,基本能够应对 90% 以上的情况。

标题

不建议使用 3 级以上的标题,这样会让文章编排很乱。

操作 windows macOS
一级标题 Ctrl + 1 Command + 1
二级标题 Ctrl + 2 Command + 2
三级标题 Ctrl + 3 Command + 3
段落 Ctrl + 0 Command + 4

表格

操作 windows macOS
插入表格 Ctrl + T Command + T
行上移 Alt + 上箭头 Command + 下箭头
行下移 Alt + 下箭头 Command + 下箭头
列左移 Alt + 左箭头 Command + 左箭头
列右移 Alt + 右箭头 Command + 右箭头
插入行 Ctrl + Enter Command + Enter
删除行 Ctrl + Shift + Delete Command + Shift + Delete

引用

操作 windows macOS
引用 Ctrl + Shift + Q Command + Shift + Q

列表

操作 windows macOS
有序列表 Ctrl + Shift + [ Command + Shift + [
无序列表 Ctrl + Shift + ] Command + Shift + ]
任务列表 Ctrl + Shift + X Command + Shift + X
增加列表缩进 Tab Tab
减少列表缩进 Shift + Tab Shift + Tab

格式

操作 windows macOS
链接 Ctrl + K Command + K
加粗 Ctrl + B Command + B
斜体 Ctrl + I Command + I
下划线 Ctrl + U Command + U
删除线 Shift + Alt + 5 Shift + Alt + 5

代码

操作 windows macOS
代码 Ctrl + Shift + ` Command + Shift + `
代码块 Ctrl + Shift + K Command + Shift + K

常用操作

操作 windows macOS
隐藏 / 显示侧边栏 Ctrl + Shift + L Command + Shift + L
源代码 Ctrl + / Command + /
换行 Ctrl + Shift + Enter Command + Shift + Enter

参考

模式描述

原型模式是从一个原型实例中创建另外一个相同对象,而不用知道创建细节。。

优点

  1. 运行时增加和删除对象;
  2. 通过极少改变,创建新对象;

缺点

  1. 要使用深拷贝代替浅拷贝。循环依赖的问题可能使 clone 难以实现;
  2. Prototype 的每个子类都要实现 clone;

应用场景

  • 对象创建的数据需要从 RPC、网络、数据库、文件系统等非常慢速的 IO 中读取;
  • 对象创建成本大、不同对象大部分字段都相同。
阅读全文 »

模式描述

不改变原始类(或叫被代理类)代码的情况下,通过引入代理类来控制这个对象的访问。

优点

  • 间接访问原始类;

缺点

  • 编写的目标代理类太多,当代理类接口改变,所有的代理类都需要进行更新。

应用场景

  1. 业务系统的非功能性需求开发。监控、统计、鉴权、限流、事务、幂等、日志。

  2. RPC

  3. 缓存

阅读全文 »

模式描述

装饰模式(Decorator),动态地给一个对象添加一些额外的职责,装饰模式比生成子类更加灵活。

优点

  1. 比静态的继承更加灵活;
  2. 避免高层接口的功能太复杂。

缺点

  1. 有很多小对象;

应用场景

  1. 不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责;
  2. 不能使用子类扩充功能时;
  3. 撤销对象功能;
阅读全文 »
0%