哪个网站可以做行测题目/站长之家网站介绍
原型模式
- 描述
- 基本使用
- 使用场景
描述
基于已有对象,利用JDK的Cloneable接口,生成一个新的对象。
常用于需要同时创建多个对象的场景
默认的clone是浅拷贝,如果要实现深拷贝需自行处理
- 可以在clone方法中手动拷贝数组成员或者其他引用类型成员
- 还可以通过对象二进制流的方式实现深拷贝
基本使用
- 声明一个实现Cloneable的类
public class User implements Cloneable {private String name;private String address;public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}public String getName() {return name;}public void setName(String name) {this.name = name;}@Overridepublic User clone() {try {return (User) super.clone();} catch (CloneNotSupportedException e) {throw new RuntimeException(e);}}
}
- 使用
public class Sample {public static void main(String[] args) {User baseUser = new User();baseUser.setName("张三");// 基于张三的名称 创建多个副本 每个副本设置不同的地址for (int i = 0; i < 3; i++) {User cloneUser = baseUser.clone();cloneUser.setAddress("地址:" + i);System.out.println(cloneUser);}}
}
使用场景
当构建基础对象比较耗时时,采用Clone方式
否则直接构建基础对象