设计模式——原型模式

2020-11-02  本文已影响0人  DevilRoshan

什么是原型模式?

用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。

实现

type Prototype interface {
    Name() string
    Clone() Prototype
}

type ConcretePrototype struct {
    name string
}

func (this *ConcretePrototype) Name() string {
    return this.name
}

func (this *ConcretePrototype) Clone() Prototype {
    return &ConcretePrototype{name: this.name}
}
func TestConcretePrototypeClone(t *testing.T) {
    name := "laoyang"
    proto :=  ConcretePrototype{name:name}
    newProto := proto.Clone()
    assert.Equal(t, name, newProto.Name())
}
// === RUN   TestConcretePrototypeClone
// --- PASS: TestConcretePrototypeClone (0.00s)
// PASS

优点

缺点

使用场景

上一篇下一篇

猜你喜欢

热点阅读