当前位置:
首页 >
prototype原型模式
发布时间:2025/5/22
174
豆豆
生活随笔
收集整理的这篇文章主要介绍了
prototype原型模式
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
/**
* 原型模式 Prototype
* 用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象
*/
需求: public class Resume {
/**
* 要求:一个简历类,必须有姓名,可以设置性别和年龄,可以设置工作经历,最终需要三份简历
*/
String name;
int age;
String gender;
String timeArea;
String company;
public Resume(String name) {
this.name = name;
}
public void setPersonInfo(String gender, int age){
this.gender = gender;
this.age = age;
}
public void setWorkExperience(String timeArea, String company){
this.timeArea = timeArea;
this.company = company;
}
public void display(){
System.out.println(name + gender + age);
System.out.println("工作经历: " + timeArea +" " + company);
}
public static void main1(String[] args){
Resume a = new Resume("大鸟");
a.setPersonInfo("男", 21);
a.setWorkExperience("上海", "xxx公司");
Resume b = new Resume("大鸟");
b.setPersonInfo("男", 21);
b.setWorkExperience("上海", "xxx公司");
Resume c = new Resume("大鸟");
c.setPersonInfo("男", 21);
c.setWorkExperience("上海", "xxx公司");
a.display();
b.display();
c.display();
}
改进:
public void copySome(String[] args){
Resume a = new Resume("大鸟");
a.setPersonInfo("男", 21);
a.setWorkExperience("上海", "xxx公司");
Resume b = a;
Resume c = a;
a.display();
b.display();
c.display();
}
引出原型模式。
* 原型模式 Prototype
* 用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象
*/
需求: public class Resume {
/**
* 要求:一个简历类,必须有姓名,可以设置性别和年龄,可以设置工作经历,最终需要三份简历
*/
String name;
int age;
String gender;
String timeArea;
String company;
public Resume(String name) {
this.name = name;
}
public void setPersonInfo(String gender, int age){
this.gender = gender;
this.age = age;
}
public void setWorkExperience(String timeArea, String company){
this.timeArea = timeArea;
this.company = company;
}
public void display(){
System.out.println(name + gender + age);
System.out.println("工作经历: " + timeArea +" " + company);
}
public static void main1(String[] args){
Resume a = new Resume("大鸟");
a.setPersonInfo("男", 21);
a.setWorkExperience("上海", "xxx公司");
Resume b = new Resume("大鸟");
b.setPersonInfo("男", 21);
b.setWorkExperience("上海", "xxx公司");
Resume c = new Resume("大鸟");
c.setPersonInfo("男", 21);
c.setWorkExperience("上海", "xxx公司");
a.display();
b.display();
c.display();
}
改进:
public void copySome(String[] args){
Resume a = new Resume("大鸟");
a.setPersonInfo("男", 21);
a.setWorkExperience("上海", "xxx公司");
Resume b = a;
Resume c = a;
a.display();
b.display();
c.display();
}
引出原型模式。
深拷贝与浅拷贝:
区别在于浅拷贝对于引用数据类型只是引用的传递,可能导致克隆体和本体共用一个引用变量,造成互相影响。深拷贝需要重写clone,进行引用对象的值传递。
《新程序员》:云原生和全面数字化实践50位技术专家共同创作,文字、视频、音频交互阅读总结
以上是生活随笔为你收集整理的prototype原型模式的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: PHP设计模式系列 - 解释器模式
- 下一篇: xen支持的块设备