用一个实例说明原型模式的使用方法

电子说

1.3w人已加入

描述

原型模式是指将类设计成可复制(克隆)类型,继承Cloneable类,在调用时就可以直接通过clone()方法克隆已有对象生成新的对象。其优点是使用clone()方法创建新对象时消耗的资源比使用new方法创建新对象时消耗的资源要少,因此采用原型方法可以提高性能,减少消耗。

以下一个实例说明原型模式的使用方法,如图创建各类。PrototypeCapable接口类继承Cloneable类,而Movie和show这两个类实现PrototypeCapable接口,是具体的可复制原型类型。

protothread

PrototypeCapable接口类:

package prototype;
public interface PrototypeCapable extends Cloneable{
  PrototypeCapable clone() throws CloneNotSupportedException;
}

Movie具体原型类:

package prototype;
public class Movie implements PrototypeCapable{
  @Override
  public Movie clone() throws CloneNotSupportedException{
    System.out.println(this);
    return (Movie)super.clone();  //返回超类的克隆
  }
}

Show具体原型类:

package prototype;
public class Show implements PrototypeCapable{
  @Override
  public Show clone() throws CloneNotSupportedException{
    System.out.println(this);
    return (Show)super.clone();  //返回超类的克隆
  }
}

主函数调用方式:

package main;
import prototype.*;
public class ProtoType {
  public static void main(String[] args) throws CloneNotSupportedException {
    //电影类原型
    Movie moviePrototype = new Movie();
    //克隆电影类原型
    Movie movie = moviePrototype.clone();
    System.out.println(moviePrototype);
    System.out.println(movie);
    //演出类原型
    Show showPrototype = new Show();
    //克隆演出类原型
    Show show = showPrototype.clone();
    System.out.println(showPrototype);
    System.out.println(show);
  }
}
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分