Python 官方文档:入门教程 => 点击学习
目录定义案例需求方案一方案二对比分析总结 定义 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象 即实现了一个原型接口,该接口用于创建当前对象的克隆,当直接创建对象的代
用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象 即实现了一个原型接口,该接口用于创建当前对象的克隆,当直接创建对象的代价比较大时,则采用这种模式
张三要打印100000份照片
定义照片类
@Data
@AllArgsConstructor
public class Photo {
private String name;
private String type;
private int size;
}
定义客户端类
public class Client {
public void printPhoto(){
Photo photo = new Photo("张三","彩色",2);
for (int i = 0; i < 100000; i++) {
Photo clone = new Photo(photo.getName(),photo.getType(),photo.getSize());
System.out.println(clone);
}
}
}
定义测试类
public class Test {
public static void main(String[] args) {
Client client = new Client();
client.printPhoto();
}
}
测试结果
定义照片类
@Data
@AllArgsConstructor
public class PhotoNew implements Cloneable{
private String name;
private String type;
private int size;
@Override
protected PhotoNew clone() {
PhotoNew clone = null;
try {
clone = (PhotoNew)super.clone();
}catch (Exception e){
e.printStackTrace();
}
return clone;
}
}
定义客户端类
public class ClientNew {
public void printPhoto(){
PhotoNew photoNew = new PhotoNew("张三","彩色",2);
for (int i = 0; i < 100000; i++) {
PhotoNew clone = photoNew.clone();
System.out.println(clone);
}
}
}
定义测试类
public class TestNew {
public static void main(String[] args) {
ClientNew clientNew = new ClientNew();
clientNew.printPhoto();
}
}
测试结果
通过以上两个方案的耗时比较,我们可以发现使用原型模式创建对象性能最优,所以在以下场景中我们可以选择使用原型模式:
1.当需要一个类的大量对象的时候
2.如果一个对象初始化太过繁琐
到此这篇关于Java设计模式之原型模式的示例详解的文章就介绍到这了,更多相关Java原型模式内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
--结束END--
本文标题: Java设计模式之原型模式的示例详解
本文链接: https://www.lsjlt.com/news/139317.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0