原型模式是什么
原型模式是一種創建型設計模式, 使你能夠復制已有物件, 而又無需使代碼依賴它們所屬的類,
為什么要用原型模式
可以幫助我們優雅地創建物件的拷貝,在這種設計模式里面,將克隆某個物件的職責交給了要被克隆的這個物件,被克隆的物件需要提供一個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的方法,
- 構造方法不會被執行,減少了約束,
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/445595.html
標籤:其他
上一篇:創建型:二. 生成器模式
下一篇:設計模式之裝飾器模式
