创建型设计模式——原型模式

文章目录

原型模式(Prototype)也称为克隆模式,是一种创建型设计模式,使你能够复制已有对象,而又无需使代码依赖它们所属的类。

问题

如果你希望生成一个对象,其与另一个对象完全相同,该如何实现呢?

如果遍历对象的所有成员,将其依次复制到新对象中,会稍显麻烦,而且有些对象可能会有私有成员变量遗漏。

原型模式将这个克隆的过程委派给了被克隆的实际对象,被克隆的对象就叫做“原型”。

解决

如果需要克隆一个新的对象,这个对象完全独立于它的原型,那么就可以使用原型模式。

原型模式的实现非常简单,请看以下代码:

package main

import "fmt"

type Type1 struct {
	name string
}

func (t *Type1) Clone() *Type1 {
	tc := *t
	return &tc
}

func main() {
	t1 := &Type1{"type1"}
	fmt.Println(t1, &t1)

	t2 := t1.Clone()
	fmt.Println(t2, &t2)
}

运行示例,输出:

&{type1} 0xc000012028
&{type1} 0xc000012038

参考文章:


也可以看看


全国大流量卡免费领

19元月租ㆍ超值优惠ㆍ长期套餐ㆍ免费包邮ㆍ官方正品