场景
老板:我们要大规模生产一种产品,每个产品的规模大小都是一模一样的,实现吧
你:好的,那就使用原型(蝇量)模式
方案
我们使用原型模式,通过拷贝的方法,拷贝一个对象自身的属性,产生一个一摸一样的自己来满足这个需求.
注意:一般我们说的拷贝分深拷贝跟浅拷贝,也就是所谓的值拷贝和指针拷贝.Golang天生就是一个中意值拷贝的语言,只要你不刻意去使用指针,那么就是一个值拷贝参数传递模式.
实现
see:https://github.com/jjtHappy/design-pattern-so-simple
package main
import "fmt"
type AbstractPrototype interface {
clone() AbstractPrototype
}
type Prototype struct {
field1 string
field2 string
field3 string
}
func (o Prototype) clone() AbstractPrototype {
return o
}
func main() {
fmt.Println("实现一个可复制的对象")
fmt.Println("好的老板")
p := &Prototype{
field1: "1",
field2: "2",
field3: "3",
}
fmt.Printf("%+v", p.clone())
}