原型模式:设计模式系列(十八)

  原型模式(Prototype Pattern):是指定实现类原型,拷贝自身来创建实例对象的设计模式,归类为创建型模式。

  这一模式的解读分为以下几个方面:

  • 需要一实现类作为原型。
  • 此实现类有拷贝自身的方法。

  使用原型模式的思考过程如下:

  1. 需要新建一个跟已有对象相似或相同的对象(例如某种由外部条件确定了状态的对象)。
  2. 调用实现类中的自我拷贝方法。

  明确一下结构,原型模式结构包含原型实现类。

原型模式示例代码如下(Swift语言):

class Prototype{
    
    var state:String;
    
    init(state:String){
        self.state = state;
    }
    
    func clone()->Prototype{
        return Prototype(state: self.state);
    }
    
    func setState(state:String){
        self.state = state;
    }
}

var object1 = Prototype(state: "object 1");
print("\(object1.state)");

var object2 = object1.clone();
object2.setState("object 2");
print("\(object1.state)");
print("\(object2.state)");

  代码分析:以上代码中只有一个实现类,很容易理解,在创建Prototype类对象的时候,调用clone方法,就能创建并返回一个跟现对象一样的新对象。以上代码的输出结果如下:

object 1
object 1
object 2

  总结:原型模式是一个看起来非常简单的设计模式,其主要动作是通过拷贝来创建一个自身类型与属性的对象,但这只是表面,本质是指定对象的原型并创建对象。在使用此模式的时候应该注意别为了模式而使用模式(这样做没有意义)。


lZackx © 2022. All rights reserved.

Powered by Hydejack v9.1.6