写在前面
设计模式,其实在一定程度上代表着最优解,最佳实践,由一部分开发人员根据经验总结而出的解决方案,分别针对不同的场景的最优解决方案。
在当前环境下,设计模式也被开发人员极为推崇,并且利用其解决众多的问题,所以,学习设计模式刻不容缓。
下面我们就来看一下“原型模式”。
原型模式,用于创造重复的对象,并且在创造的过程中保证足够好的性能。其原理就是提供一个用于克隆对象的接口,在创建新对象的时,不需要再去重新执行过多复杂的细节操作,直接在原对象的基础上克隆一个对象出来即可。
使用场景
刚才也说到了,原型模式解决的问题就是避免重复执行复杂的创建新对象的过程,所以他的使用场景也就是在重复执行过于复杂过程的新对象创建时使用了。
优缺点
优点就是性能有很大的提高,又能直接根据克隆生成,所以不需要以往的那种通过构造函数来创建的方式了。
缺点就是如果想要支持克隆的话,那就要对类的功能有更深入的考虑,往往在我们老代码中改造起来是非常不容易的,而且还要实现Cloneable接口。
注意事项
因为是通过克隆来实现原型模式的,所以就涉及到一个问题,那就是深克隆和浅克隆,浅克隆就是利用Cloneable接口就可以了,深克隆的话,我们这边就需要转变一下,要使用序列化来进行深克隆。