原型模式(Prototype)

1、本质:克隆生成对象

2、定义:用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象

3、与new的区别:

    new的对象实例只有默认值

    克隆的对象拥有和被克隆对象完全相同的值

4、Java中本身提供的克隆方法:

    1、被克隆类实现Cloneable接口

    2、被克隆类中添加clone方法  

 1 public Object clone(){
 2     Object obj = null;
 3 
 4     try{
 5 
 6         obj = super.clone();
 7 
 8     }catch(CloneNotSupportedException e){
 9         e.printStackTrace();
10     }
11 
12     return obj;
13 }

5、浅度克隆和深度克隆

    浅度克隆:只负责克隆按值传递的数据                --基本数据类型,String

    深度克隆:除了浅度克隆要克隆的值外,还克隆应用类型的数据     --需要递归克隆,即:属性对象也需要正确实现克隆方法

6、优点:

    对客户端隐藏具体的实现类型

    在运行时动态改变具体的实现类型

7、缺点:

    每个原型的子类都必须实现clone的操作

posted @ 2014-04-14 09:59  无名十四  阅读(145)  评论(0)    收藏  举报