Golang 备忘清单
该备忘单提供了帮助您使用 Golang 的基本语法和方法
设计模式
设计模式分类
创建型模式
用于描述“怎样创建对象”,它的主要特点是“将对象的创建与使用分离”。GoF(四人组)书中提供了单例、原型、工厂方法、抽象工厂、建造者等 5 种创建型模式。
结构型模式
用于描述如何将类或对象按某种布局组成更大的结构,GoF(四人组)书中提供了代理、适配器、桥接、装饰、外观、享元、组合等 7 种结构型模式。
行为型模式
用于描述类或对象之间怎样相互协作共同完成单个对象无法单独完成的任务,以及怎样分配职责。GoF(四人组)书中提供了模板方法、策略、命令、职责链、状态、观察者、中介者、迭代器、访问者、备忘录、解释器等 11 种行为型模式。
创建型-单例模式(Singleton pattern)
单例模式(Singleton pattern)确保一个类只有一个实例,并提供该实例的全局访问点
通过单例的创建时机分类,可分为懒汉式和饿汉式
实现类型
单例创建时机
应用场景
饿汉式
- 不可控,类加载时自动创建单例
初始化时就需要创建单例,希望单例对象初始化速度快,适合占用内存小的单例
懒汉式
可控,有需要时才手动创建单例
按需、延迟创建单例,单例 ...
软件设计原则
开闭原则对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,而是要实现一个热插拔的效果。简言之,是为了使程序的扩展性好,易于维护和升级
想要达到这样的效果,我们需要使用接口和抽象类。
示例:计算面积假设有一个图形类(Shape)和两个具体的图形子类:矩形(Rectangle)和圆形(Circle)。现在,我们要为这些图形添加一个计算面积的功能,并且希望在未来能够扩展更多的图形
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455// 图形类abstract class Shape { public abstract double calculateArea();}// 矩形类class Rectangle extends Shape { private double width; private double height; public Rectangle(dou ...
Lombok常用注解
@RequiredArgsConstructor@RequiredArgsConstructor 注解是 Lombok 提供的一个功能注解,它可以为包含 final 或 @NonNull 修饰的字段生成构造函数参数。
使用 @RequiredArgsConstructor 注解时,Lombok 会根据类中的字段自动生成一个构造函数,该构造函数只接受被修饰字段作为参数,并将这些参数用于初始化对象的对应字段。通过自动生成的构造函数,可以方便地为带有 final 或 @NonNull 修饰的字段赋值,避免了手动编写构造函数的繁琐工作。
需要注意的是,@RequiredArgsConstructor 注解不会为非 final 或无 @NonNull 修饰的字段生成构造函数参数,也不会为静态字段生成构造函数参数。
以下是使用 @RequiredArgsConstructor 注解的示例:
123456789101112131415161718192021import lombok.RequiredArgsConstructor;@RequiredArgsConstructorpublic cla ...
Markdown 备忘清单
该备忘单提供了帮助您使用 Markdown 的基本语法和方法
编程入门
本文章更适合准大一及以下的同学观看
Protobuf3 语言指南
Protocol Buffers比XML更快、更小,广泛用于Google内部结构化数据存储和RPC系统基础,几乎全面用于跨服务器通信。它类似于Apache Thrift和Ion等协议,提供gRPC作为RPC协议栈给上层服务使用
Java 虚拟机
记录一些关于 Java 虚拟机的知识点