这是我参与「第三届青训营 -后端场」笔记创作活动的第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) } `
应用场景:工厂模式一般用于对于不同的场景,需要创建不同的对象,但是这些对象实现的功能是很相似的,可以抽象出一个父类,对于这种情形就可以使用工厂模式。
简单工厂模式是我们平常使用中最经常使用到的一中设计模式,我们需要很好的去掌握它。接下来也会去学习更多种类的设计模式,比如抽象工厂模式,观察者模式,代理模式等。在青训营期间,不断去学习自己,提升自己。