原型模式是指将类设计成可复制(克隆)类型,继承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);
}
}
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
Cyclone
+关注
关注
0文章
54浏览量
30093 -
protothread
+关注
关注
1文章
3浏览量
2032
发布评论请先 登录
相关推荐
JavaScript中的Object
次,所以 sayName 方法的引?指向的是同一个堆内存对象。● 书中是这样写的:使?动态原型模式时,不能使用对象字?量重写原型。前面已经解释过了,如果在已经创建了
发表于 09-18 09:05
基于施耐德PLC编程软件Unity Poxl 3.0使用方法
本文叙述了施耐德PLC编程软件Unity Poxl 3.0具体使用方法,详细讲述了软件的安装过程,怎样创建一个工程,最后以一个流程等
发表于 10-13 16:44
•6次下载
wps的vlookup函数的使用方法及实例
WPS Office是一款功能全面的办公软件,其中的VLOOKUP函数在数据分析和处理中非常常用。在本文中,我们将详细介绍WPS Office中VLOOKUP函数的使用方法,并提供一些实例
sumif函数求和的使用方法及实例
按照上述的语法填写好函数的参数即可。下面,我们通过几个实例来详细介绍Sumif函数的使用方法。 实例一: 假设我们有一
评论