分享
二)golang工厂模式
氓浅 · · 1306 次点击 · · 开始浏览这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。
在通用的工厂模式中,一般涉及到 简单工厂模式(顾名思义:工厂 > 创建)、工厂方法(顾名思义:将方法工厂化)、抽象工厂模式(顾名思义:将工厂抽象化 工厂 > 工厂 > 创建)
特点:将接口与具体实现分离,根据需要实例化对象
使用场景:日志记录,文件服务平台,数据库访问
1.定义产品接口
type P interface {}
2.定义实现结构
type P1 struct {} //implement P
type P2 struct {} //implement P
...
//简单
3.工厂方法(简单工厂完)
func F (name string) P {}
//抽象
3.工厂接口,用于生产工厂
type Factory interface {
CreateP(name string)
CreatePE(name string)
...
}
4.创建多种产品接口
type PE interface {}
...
5.创建实现结构
type PE1 struct {}
type PE2 struct {}
...
6.工厂实现结构
type F1 struct {} //implement Factory,用于生产P
type F2 struct {} //implement Factory,用于生产PE
...
7.生产工厂方法
func CreateFactory(name string) Factory{}
应用:
f1 := CreateFactory(F1)
//f1为工厂F1的一个实例
p1 := f1.CreateP(P1)
//p1则为产品P1的一个实例
p2 := f1.CreateP(P2)
//p2则为产品P2的一个实例
...
f2 := CreateFactory(F2)
//f2为工厂F2的一个实例
pe1 := f2.CreatePE(PE1)
...
有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
关注微信1306 次点击
上一篇:supervisor配置详解
下一篇:01Go命令介绍
添加一条新回复
(您需要 后才能回复 没有账号 ?)
- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码` - 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传
收入到我管理的专栏 新建专栏
在通用的工厂模式中,一般涉及到 简单工厂模式(顾名思义:工厂 > 创建)、工厂方法(顾名思义:将方法工厂化)、抽象工厂模式(顾名思义:将工厂抽象化 工厂 > 工厂 > 创建)
特点:将接口与具体实现分离,根据需要实例化对象
使用场景:日志记录,文件服务平台,数据库访问
1.定义产品接口
type P interface {}
2.定义实现结构
type P1 struct {} //implement P
type P2 struct {} //implement P
...
//简单
3.工厂方法(简单工厂完)
func F (name string) P {}
//抽象
3.工厂接口,用于生产工厂
type Factory interface {
CreateP(name string)
CreatePE(name string)
...
}
4.创建多种产品接口
type PE interface {}
...
5.创建实现结构
type PE1 struct {}
type PE2 struct {}
...
6.工厂实现结构
type F1 struct {} //implement Factory,用于生产P
type F2 struct {} //implement Factory,用于生产PE
...
7.生产工厂方法
func CreateFactory(name string) Factory{}
应用:
f1 := CreateFactory(F1)
//f1为工厂F1的一个实例
p1 := f1.CreateP(P1)
//p1则为产品P1的一个实例
p2 := f1.CreateP(P2)
//p2则为产品P2的一个实例
...
f2 := CreateFactory(F2)
//f2为工厂F2的一个实例
pe1 := f2.CreatePE(PE1)
...