1. 程式人生 > 其它 >建立型:三. 原型模式

建立型:三. 原型模式

原型模式是什麼

原型模式是一種建立型設計模式, 使你能夠複製已有物件, 而又無需使程式碼依賴它們所屬的類。

為什麼要用原型模式

可以幫助我們優雅地建立物件的拷貝。在這種設計模式裡面,將克隆某個物件的職責交給了要被克隆的這個物件。被克隆的物件需要提供一個clone()方法。通過這個方法可以返回該物件的拷貝。

原型模式怎麼實現

拷貝這些原型建立的物件。通過實現克隆clone()操作,快速的生成和原型物件一樣的例項。

原型示例
type Cloneable interface {
	Clone() Cloneable
}

type Student struct {
	Name string
	Behavior []string
	Describe *string
}

func NewStudent (name,describe string,behavior []string) *Student {
	return &Student{
		Name: name,
		Behavior: behavior,
		Describe: &describe,
	}
}

func (s *Student)GetName () string {
	return s.Name
}

func (s *Student) Clone() Cloneable {
	student := *s
	return &student
}

優點

  1. 某些時候克隆比間接new一個物件再逐屬性賦值的過程更簡潔高效。
  2. 你可以更方便地生成複雜物件,逃避建構函式的約束

缺點

  1. 需要為每個類實現一個可以clone的方法。
  2. 構造方法不會被執行,減少了約束。