建立型:三. 原型模式
阿新 • • 發佈:2022-03-20
原型模式是什麼
原型模式是一種建立型設計模式, 使你能夠複製已有物件, 而又無需使程式碼依賴它們所屬的類。
為什麼要用原型模式
可以幫助我們優雅地建立物件的拷貝。在這種設計模式裡面,將克隆某個物件的職責交給了要被克隆的這個物件。被克隆的物件需要提供一個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 }
優點
- 某些時候克隆比間接new一個物件再逐屬性賦值的過程更簡潔高效。
- 你可以更方便地生成複雜物件,逃避建構函式的約束
缺點
- 需要為每個類實現一個可以clone的方法。
- 構造方法不會被執行,減少了約束。