1.模式动机与定义
在软件系统中,有时候需要多次创建某一类型的对象,为了简化创建过程,可以只创建一个对象,然后再通过克隆的方式复制出多个相同的对象,这就是原型模式的设计思想。
1.1模式动机
在面向对象系统中,使用原型模式来复制一个对象自身,从而克隆出多个与原型对象一 摸一样的对象。
在软件系统中,有些对象的创建过程较为复杂,而且有时候需要频繁创建,类似JavaWeb,数据库连接池等。原型模式通过给出一个原型对象来指明所要创建的对象的类型,然后用复制这个原型对象的方法创建出更多同类型的对象,这就是原型模式的意图所在。
1.2模式定义
原型模式定义:原型模式是一种对象创建型模型,用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象。原型模式允许一个对象再创建另外一个可定制的对象,无须知道任何创建的细节。原型模式的基本工作原理是通过讲一个原型对象传给那个那发动创建的对象,这个要发动创建的对象通过请求原型对象复制原型来实现创建过程。
英文定义:“Specify the kind of objects to create using a prototypical instance, and create new objects by copying this prototype.”
2.原型模式结构与分析
2.1模式结构
1.Prototype(抽象原型类)
抽象原型类是定义具有克隆自己的方法接口,是所有具体原型类的公共父类,可以是抽象类,也可以是接口。
2.ConcretePrototype(具体原型类)
具体原型类实现具体的克隆方法,在克隆方法中返回一个自己的克隆对象。
3.Client(客户类)
客户类让一个原型克隆自身,从而创建一个新的对象。在客户类中只需要直接实例化或通过工厂方法等方法创建一个对象,再通过调用该对象的克隆方法复制得到多个相同的对象。