欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 家装 > Golang|工厂模式

Golang|工厂模式

2025/5/2 19:44:13 来源:https://blog.csdn.net/weixin_44043952/article/details/147589959  浏览:    关键词:Golang|工厂模式
  • 工厂模式是一种创建型设计模式,它的核心思想是:把对象的创建过程封装起来,不直接在代码中 new 一个对象,而是通过一个“工厂”来生成对象。
  • 这样做的好处是:
    • 降低了代码之间的耦合(依赖具体类减少)
    • 更方便扩展和维护(想换对象,只需要改工厂逻辑)
  • 工厂模式 = 把"创建对象"这件事封装起来,让代码更灵活、更易扩展、更易维护。

在这里插入图片描述

// 以简单工厂模式为例,假设我们要生产小狗和小猫对象:package mainimport "fmt"// 1. 定义动物接口
type Animal interface {Speak()
}// 2. 具体的狗结构体
type Dog struct{}func (d Dog) Speak() {fmt.Println("汪汪!")
}// 3. 具体的猫结构体
type Cat struct{}func (c Cat) Speak() {fmt.Println("喵喵!")
}// 4. 工厂类
type AnimalFactory struct{}// CreateAnimal 是工厂方法
func (a AnimalFactory) CreateAnimal(animalType string) Animal {switch animalType {case "dog":return Dog{}case "cat":return Cat{}default:return nil}
}// 5. 主函数(客户端使用)
func main() {factory := AnimalFactory{}animal1 := factory.CreateAnimal("dog")if animal1 != nil {animal1.Speak() // 输出:汪汪!}animal2 := factory.CreateAnimal("cat")if animal2 != nil {animal2.Speak() // 输出:喵喵!}
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 工厂模式用于生成符合统一接口的KV数据库实例。
  • 工厂函数getKVDB接受数据库类型和本地存储路径作为参数,返回一个IKeyValueDB接口。
  • 工厂函数内部根据参数创建具体的数据库实例,如Badger或Boat,并打开数据库。
  • 工厂模式的思想是能够生成多种产品,但所有产品都实现同一个接口。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词