Engineering Notes

孟斌的小站

技术博客与学习记录

共 612 篇文章 标签与分类索引已启用

enum in Go

const + iota

在 Go 语言中,并没有直接的枚举类型(像其他语言中的枚举一样)。不过,我们可以使用一种常见的约定来模拟枚举,使用constiota的方法是 Go 中实现枚举类型的一种常见做法,这样可以实现类似枚举的效果。以下是一个简单的示例:

go
继续阅读

设计模式之命令模式

1. 基本概念

命令模式(Command Pattern)是一种行为型设计模式,它将请求封装成一个对象,从而允许使用不同的请求、队列或日志请求等方式来参数化其他对象。命令模式也支持可撤销的操作。

继续阅读

设计模式之责任链模式

1. 基本概念

责任链模式(Chain of Responsibility Pattern)是一种行为型设计模式,它通过一条链传递请求,直到某个对象处理该请求为止。在责任链模式中,每个处理者都包含对下一个处理者的引用,形成一条链。请求沿着链传递,直到有一个处理者能够处理它为止。

继续阅读

设计模式之代理模式

1. 基本概念

代理模式(Proxy Pattern)是一种结构型设计模式,它允许一个对象(代理)控制另一个对象的访问。代理模式通常涉及到创建一个包装对象(代理),以控制对原始对象的访问,从而提供额外的功能或控制访问方式。

继续阅读

设计模式之享元模式

1. 基本概念

享元模式(Flyweight Pattern)是一种结构型设计模式,它旨在减少对象的数量,通过共享已经存在的相似对象来减小内存占用和提高性能。享元模式适用于需要创建大量相似对象,但这些对象中的许多属性是可以共享的情况。

继续阅读

设计模式之外观模式

1. 基本概念

外观模式(Facade Pattern)是一种结构型设计模式,它提供了一个简化系统接口的高层接口,使得系统更易于使用。外观模式定义了一个高层接口,这个接口隐藏了系统中多个子系统的复杂性,为客户端提供了一个简化的入口点。

继续阅读

对比Go中的值接收和指针接收

在 Go 语言中,方法可以使用值接收者(value receiver)或指针接收者(pointer receiver)。这两者之间有关键的区别,主要涉及到方法对实例的修改、复制开销和调用时的语法。

go
继续阅读

设计模式之装饰器模式

1. 基本概念:

装饰器模式是一种结构型设计模式,它允许在运行时通过将对象封装在一系列装饰器类的对象中,动态地扩展其行为。装饰器模式通过组合和递归的方式,使得客户端可以在不修改原始对象的情况下,以自由组合的方式增加新的功能。

继续阅读