天天看点

设计模式(五)(Protype Pattern)原型模式

定义:

  原型模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型来创建新的对象

适用性:

当我们系统中有一些类,在使用的时候都有同样需要大量的创建,而这样的创建是复杂的而且是浪费CPU,内存资源的,为了解决这一问题,就出现了原型模式(深度克隆,浅克隆)

模式思想:

1.  通过使用同一的创建对象方案,尽量避免创建对象复杂过程代码重复出现;

2.  为了节省CPU,内存资源,我们可以让不同的类之间共享一些(业务上允许)资源,从而达到缩小占用内存空间;

3.  这样的一类业务需求本来就具有一定的同一性,我们抽象出一个同一的抽象类(Protype,ICloneable)作为规范,让有这样需求的类实现他们,从而达到了结构同一。

模式图:

设计模式(五)(Protype Pattern)原型模式

模式示例:

原型抽象类: 

具有原型属性类:

特点:

Protype抽象类特点:

就有一个抽象接口Clone,返回值T(object,尽量使用泛型,避免加压包)

具有原型属性的一些类特点:

都实现了Protype抽象类,都有自己制定规则的Clone方法,内部都采用了符合业务需求的克隆方案(深度克隆还是采用浅克隆,要依据业务来定)。

 当然.NET系统中叶提供了类似的接口类ICloneable,并提供了MemberwiseClone()浅克隆方法。

深克隆方案也有:反序列化、反射、new等。

基础才是编程人员应该深入研究的问题,比如:

1)List/Set/Map内部组成原理|区别

2)mysql索引存储结构&如何调优/b-tree特点、计算复杂度及影响复杂度的因素。。。

3)JVM运行组成与原理及调优

4)Java类加载器运行原理

5)Java中GC过程原理|使用的回收算法原理

6)Redis中hash一致性实现及与hash其他区别

7)Java多线程、线程池开发、管理Lock与Synchroined区别

8)Spring IOC/AOP 原理;加载过程的。。。

【+加关注】。

继续阅读