设计方式——原型模式(1)

设计模式——原型模式(1)
    前言:最近在开发过程中深刻认识到学习设计模式的必要性,所以转过头来再对设计模式总结学习一遍。有写得不对或认识不到位的地方,望大家不吝赐教。

原型模式
    在平时开发过程中,经常会遇到需要大量生成bean的地方,最常见的应该是单元测试时,为了一个业务service类,需要mock多个bean来测试不同的条件分支和异常情况,这时如果修改业务service类中的一个方法参数,或者修改了一个bean的构造函数,这时的工作量非常巨大。所以这里我就想到了原型模式。
    原型模式对于javascript来说,大家已经非常熟悉了,但对JAVA开发人员来讲,是很多人忽略的一点。
    提到原型,就不得不提到浅复制和深复制,在JAVA中,clone()方法也是浅复制的,需要我们实现深度复制。这两个如何使用下面有提到。
    原型模式的优点就是可以让我们不需要大量得初始化类,导致代码与构造紧耦合,使用原型就可以使我们某个业务变更时,只需要修改对应的对象构造代码,不会影响到其他对象。
    第二个优点就是性能的提高,不需要调用NEW去构造对象,并且可以隐藏构造对象的细节。