在某些应用程序中,某些对象(一种类别)比较复杂,且其创建过程比较复杂,并且我们需要频繁使用到这些对象。如果我们一直使用new的方式来创建这些对象,会导致程序效率低下。
如果我们预先创建好该对象(即原型),通过该对象的自我复制(克隆)得到对象实例,从而提高代码效率,这就是原型模式的思想。
原型模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。
该模式的关键在于“克隆”,首先创建好原型对象,然后在需要使用时,通过克隆复制一个新的个体(注意深复制与浅复制)。
优点:1、性能提高。
2、逃避构造函数的约束。
缺点: 1、配备克隆方法需要对类的功能进行通盘考虑,这对于全新的类不是很难,但对于已有的类不一定很容易,特别当一个类引用不支持串行化的间接对象,或者引用含有循环结构的时候。
2、必须实现 Cloneable 接口。
参考资料
原型模式|菜鸟教程