电子说
原型模式是指将类设计成可复制(克隆)类型,继承Cloneable类,在调用时就可以直接通过clone()方法克隆已有对象生成新的对象。其优点是使用clone()方法创建新对象时消耗的资源比使用new方法创建新对象时消耗的资源要少,因此采用原型方法可以提高性能,减少消耗。
以下一个实例说明原型模式的使用方法,如图创建各类。PrototypeCapable接口类继承Cloneable类,而Movie和show这两个类实现PrototypeCapable接口,是具体的可复制原型类型。
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);
}
}
全部0条评论
快来发表一下你的评论吧 !