内蒙古兴泰建设集团信息化网站,郑州定制网站建设,wordpress设为中文,网络大型游戏排行一、 实验目的与要求 1.练习使用单一模式。设计相关的模拟场景并进行实施#xff0c;验证模式特性#xff0c;掌握其优缺点。 2.实验结束后#xff0c;对相关内容进行总结。 二、实验内容 1.模式应用场景说明 原型模式#xff1a;在需要一个类的大量对象的时候#xff0c;…一、 实验目的与要求 1.练习使用单一模式。设计相关的模拟场景并进行实施验证模式特性掌握其优缺点。 2.实验结束后对相关内容进行总结。 二、实验内容 1.模式应用场景说明 原型模式在需要一个类的大量对象的时候使用原型模式是最佳选择因为原型模式是在内存中对这个对象进行拷贝要比直接new这个对象性能要好很多在这种情况下需要的对象越多原型模式体现出的优点越明显。 比如下面将一个文件的内容复制到例外一个。 2.应用场景类图
3.实现代码与解释 3.1 Attachment
package 原型模式;public class Attachment {public void download(){System.out.println(下载文件); }
}3.2 CopyWord
package 原型模式;public class CopyWord {private Attachment Downloadnull;public CopyWord(){this.Downloadnew Attachment();}//将对象写入流中public Object clone(){CopyWord clonenull;try{clone(CopyWord)super.clone(); }catch(CloneNotSupportedException e){System.out.println(Clone failure!);}return clone;}//将对象从流中取出public Attachment getAttachment(){return this.Download;}public void display(){System.out.println(查看邮件); }
}3.3—User
package 原型模式;public class User {public static void main(String a[]){CopyWord word,copyword; //定义两个抽象对象wordnew CopyWord(); //实例化copyword(CopyWord)word.clone();//负责克隆System.out.println(wordcopyword?); //如果相同 System.out.println(wordcopyword);System.out.println(word.getCopywordcopyword.getCopyword?); //如果相同 System.out.println(word.getAttachment()copyword.getAttachment()); }
}4.结果及分析
三、实验总结 在使用原型模式的时候如果一个对象的初始化需要很多其他对象的数据准备或其他资源的繁琐计算那么可以使用原型模式。当需要一个对象的大量公共信息少量字段进行个性化设置的时候也可以使用原型模式拷贝出现有对象的副本进行加工处理。