ASP源码.NET源码PHP源码JSP源码JAVA源码DELPHI源码PB源码VC源码VB源码Android源码
当前位置:首页 >> 企业开发 >> 创建型设计模式:原型模式

创建型设计模式:原型模式

来源:网络整理     时间:2016-03-19     关键词:

本篇文章主要介绍了"创建型设计模式:原型模式",主要涉及到方面的内容,对于企业开发感兴趣的同学可以参考一下: 一、原型模式1、原型模式属于对象的创建模式。通过给出一个原型对象来指明所有创建的对象的类型,然后用复制这个原型对象的办法创建出更多同类型的对象。这就是选型模式的...

一、原型模式
1、原型模式属于对象的创建模式。通过给出一个原型对象来指明所有创建的对象的类型,然后用复制这个原型对象的办法创建出更多同类型的对象。这就是选型模式的用意。
2、原型模式要求对象实现一个可以“克隆”自身的接口,这样就可以通过复制一个实例对象本身来创建一个新的实例。这样一来,通过原型实例创建新的对象,就不再需要关心这个实例本身的类型,只要实现了克隆自身的方法,就可以通过这个方法来获取新的对象,而无须再去通过new来创建。

这种形式涉及到三个角色:
(1)客户(Client)角色:客户类提出创建对象的请求。
(2)抽象原型(Prototype)角色:通常由一个Java接口或Java抽象类实现。此角色给出所有的具体原型类所需的接口。
(3)具体原型(Concrete Prototype)角色:被复制的对象。此角色需要实现抽象的原型角色所要求的接口。
3、Java中的克隆方法足的3个条件:
(1)对任何的对象x,都有:x.clone()!=x。换言之,克隆对象与原对象不是同一个对象
(2)对任何的对象x,都有:x.clone().getClass() == x.getClass(),换言之,克隆对象与原对象的类型一样。
(3)如果对象x的equals()方法定义其恰当的话,那么x.clone().equals(x)应当成立的
4、浅克隆和深克隆
浅度克隆
只负责克隆按值传递的数据(比如基本数据类型、String类型),而不复制它所引用的对象,换言之,所有的对其他对象的引用都仍然指向原来的对象。
深度克隆
除了浅度克隆要克隆的值外,还负责克隆引用类型的数据。引用类型必须实现Serializable接口,并通过流的方式读取和返回。

以上就介绍了创建型设计模式:原型模式,包括了方面的内容,希望对企业开发有兴趣的朋友有所帮助。

本文网址链接:http://www.codes51.com/article/detail_470443.html

相关图片

相关文章