真实世界的Go设计模式 - 工厂模式
💡
原文中文,约3500字,阅读约需9分钟。
📝
内容提要
工厂模式是一种创建新对象的设计模式,类似简单工厂模式,通过New或NewXXX来实现。在Go中,可以使用工厂模式创建不同类型的存储数据结构。还可以使用类型切换和函数指针等特性来创建不同类型的对象,无需创建复杂的接口和具体类。例如,net/http包中的NewRequestWithContext函数和database/sql包中的Open函数都使用了工厂模式。通过注册不同的实现方式,可以根据需要创建相应的对象。
🎯
关键要点
-
工厂模式是一种创建新对象的设计模式。
-
Go中的工厂模式类似简单工厂模式,通常通过New或NewXXX实现。
-
可以定义Store接口并实现不同的存储类型,如内存存储、磁盘存储和临时文件存储。
-
Go标准库中的net/http.NewRequestWithContext函数利用类型切换和函数指针创建不同的请求对象,无需复杂接口。
-
database/sql包中的Open方法根据数据库类型名和数据源名生成对应的DB对象,且没有定义DB接口。
-
不同数据库驱动可以通过注册机制实现,Go使用表来注册不同实现并查找相应的创建方法。
➡️