go语言中的设计模式|青训营笔记

122 阅读2分钟

这是我参与「第三届青训营 -后端场」笔记创作活动的第1篇笔记

今天写一下go语言的设计模式,因为使用go语言写抖音项目,学习了go语言的设计模式-简单工厂模式,是我们最经常使用到的一中设计模式,就这样进行笔记来记录一下。

简单工厂模式

简单工厂模式(Simple Factory Pattern):又称为静态工厂方法(Static Factory Method)模式,它属于类创建型模式。在简单工厂模式中,可以根据参数的不同返回不同类的实例。简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。

主要有3中角色:

Factory:工厂角色负责实现创建所有实例的内部逻辑

Product:抽象产品角色是所创建的所有对象的父类,负责描述所有实例所共有的公共接口

ConcreteProduct:具体产品角色是创建目标,所有创建的对象都充当这个角色的某个具体类的实例。

实现代码:

`type API interface { Say(name string) string }

func NewAPI(t int) API { if t == 1 { return &hi{} } else if t == 2 { return &hello{} } return nil }

type hi struct{}

func (*hi) Say(name string) string { return fmt.Sprintf("Hi, %s", name) }

type hello struct{}

func (*hello) Say(name string) string { return fmt.Sprintf("Hello, %s", name) } `

应用场景:工厂模式一般用于对于不同的场景,需要创建不同的对象,但是这些对象实现的功能是很相似的,可以抽象出一个父类,对于这种情形就可以使用工厂模式。

简单工厂模式是我们平常使用中最经常使用到的一中设计模式,我们需要很好的去掌握它。接下来也会去学习更多种类的设计模式,比如抽象工厂模式,观察者模式,代理模式等。在青训营期间,不断去学习自己,提升自己。