原型模式(Prototype)



GOF意图:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。(用已存在的类A实例创另一个类A实例)

角色:

Prototype:抽象原型类。声明克隆自身的接口clone。 

ConcretePrototype:具体原型类。实现克隆的具体操作。 

Client:客户类。使用clone类的用户。

实现要点:clone方法实现时一定要深拷贝,不能是浅拷贝。

浅拷贝:非引用型成员变量和引用类型成员变量直接赋值,引用类型成员变量自身不深拷贝。

深拷贝:1.非引用型成员变量直接对应赋值值,2.引用类型成员变量也要深拷贝。

使用场景:

       如果创建新的对象比较复杂时,可以利用原型模式简化对象的创建过程,同时也能够提高效率

猜你喜欢

转载自jishudaren.iteye.com/blog/2295773