golang设计模式之简单工厂模式
发布时间:2020-12-16 18:06:34 所属栏目:大数据 来源:网络整理
导读:1. 写在前面 在面向对象的编程语言中(如java,C++)设计模式的概念广为人知,应用的也非常广泛。设计模式让我们的代码变得灵活起来,具有很强的扩展性。但在与C语言比肩的Go语言中,设计模式的概念并没有十分突出,甚至很少听到。在Go的开发中,借鉴design p
1. 写在前面在面向对象的编程语言中(如java,C++)设计模式的概念广为人知,应用的也非常广泛。设计模式让我们的代码变得灵活起来,具有很强的扩展性。但在与C语言比肩的Go语言中,设计模式的概念并没有十分突出,甚至很少听到。在Go的开发中,借鉴design pattern的理念同样回味无穷我们的开发带来极大的便利。 相关源代码demo在Github上,可供参考! 2. 简单工厂模式类图: 和传统的Java等面向对象语言的继承机制不同,在Go语言中并不提倡使用继承,但是在某些场景下要用到继承的话,可以用下面的方式实现继承关系。 type Animal struct { Category string }
type Dog struct { Animal Name string }
简单工厂模式实现起来也比较简单,主要代码如下: type AnimalFactory struct {
}
func NewAnimalFactory() *AnimalFactory {
return &AnimalFactory{}
}
func (this *AnimalFactory) CreateAnimal(name string) Action {
switch name {
case "bird":
return &Bird{}
case "fish":
return &Fish{}
case "dog":
return &Dog{}
default:
panic("error animal type")
return nil
}
} (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |