设计模式-原型模式示例_环球热门

来源:腾讯云

2023-05-05 08:42:47


(资料图片仅供参考)

演示原型模式的实现方法:

// 原型接口public interface Prototype {    Prototype clone();}// 具体的学生类,实现原型接口并重写复制方法public class Student implements Prototype {    private String name;    private int age;        public Student(String name, int age) {        this.name = name;        this.age = age;    }        public String getName() {        return name;    }        public void setName(String name) {        this.name = name;    }        public int getAge() {        return age;    }        public void setAge(int age) {        this.age = age;    }        // 实现 clone() 方法,返回一个新的学生对象并复制原有对象的属性    @Override    public Prototype clone() {        return new Student(name, age);    }}// 客户端代码public class Client {    public static void main(String[] args) {        // 创建原型对象        Student stu1 = new Student("张三", 20);                // 克隆新对象并修改属性        Student stu2 = (Student) stu1.clone();        stu2.setName("李四");        stu2.setAge(21);                // 打印结果        System.out.println("stu1: " + stu1.getName() + ", " + stu1.getAge());        System.out.println("stu2: " + stu2.getName() + ", " + stu2.getAge());    }}

在这个示例代码中,我们定义了一个原型接口 Prototype 和一个具体的学生类 Student,该类实现了原型接口并重写了 clone() 方法。在客户端代码中,我们创建了一个原型对象 stu1,并通过克隆原型对象来生成一个新的学生对象 stu2,然后修改 stu2 对象的属性并打印结果。由于 stu1 和 stu2 对象是互相独立的,因此修改 stu2 的属性不会影响 stu1 对象的属性。

需要注意的是,在实现原型模式时,要确保克隆对象的深浅复制问题。在示例代码中,我们只需要对基本类型的成员变量进行复制,因此可以使用浅复制来实现 clone() 方法。但如果 Student 类中包含了非基本类型的成员变量,例如一个引用类型的属性 Address,那么就需要对这个属性进行深度克隆,否则复制出来的新对象和原有对象会共享这个引用类型的属性,可能会引发潜在的问题。

因此,在实现原型模式时,需要根据具体的场景选择适当的复制方法来确保克隆对象的正确性。如果对象比较简单,只包含基本类型的成员变量,可以使用浅复制来实现 clone() 方法;如果对象比较复杂,包含了多个引用类型的成员变量,就需要使用深复制来确保新对象和原有对象的属性是完全独立的。

关键词:

设计模式-原型模式示例_环球热门

在这个示例代码中,我们定义了一个原型接口Prototype和一个具体的学生类Student,该类实现了原型接口并重写[详细]
2023-05-05

端午节五彩绳手链编法图解_端午节五彩绳教程

欢迎观看本篇文章,小勉来为大家解答以上问题。端午节五彩绳手链编法图解,端午节五彩绳教程很多人还不知道[详细]
2023-05-05

西安阳早寒春公园正式开放-每日焦点

一对美国夫妻为什么会选择在万里之遥的中国做一辈子农民?美国的核武器专家为什么会成为中国的奶牛专家?…[详细]
2023-05-05

卫冕冠军AC米兰祝贺那不勒斯夺冠:伟大的成就,当之无愧的冠军-快讯

直播吧5月4日讯意甲第33轮,那不勒斯客场1-1战平乌迪内斯,提前5轮锁定冠军。赛后,卫冕冠军AC米兰官推发文[详细]
2023-05-05

环球最资讯丨长沙一公司每周三全员带薪休假,究竟是怎么一回事?

正文摘要:近日,一家位于长沙的公司因其特殊的员工福利政策引起了广泛关注。据报道,该公司实行每周三全员[详细]
2023-05-05

工程力学就业怎么样质量专前景

1、工程力学就业怎么样就业前景很好,前提是专业能力强,不是一问三不知工程力学涉及众多的力学学科分支与[详细]
2023-05-05

云裳火火的姑娘广场舞分解动作 火火的姑娘广场舞分解动作

今天来聊聊关于云裳火火的姑娘广场舞分解动作,火火的姑娘广场舞分解动作的文章,现在就为大家来简单介绍下[详细]
2023-05-05

江南百景图好吃果子在哪个地图_好吃果子位置介绍

欢迎观看本篇文章,小勉来为大家解答以上问题。江南百景图好吃果子在哪个地图,好吃果子位置介绍很多人还不[详细]
2023-05-05

防辐射的植物盆栽排名_防辐射的植物

1、仙人球、仙人掌、仙人指、量天尺等植物能防辐射并吸收二氧化碳,释放氧气。2、这类植物摆放在电脑旁边,[详细]
2023-05-04

桌面图标不见了咋办_桌面图标不见了怎么弄出来

1、【问题描述】:打开电脑没有软件显示【原因分析】:系统故障【简易步骤】:在【桌面】上点击鼠标右键—【[详细]
2023-05-04
版权所有: 时代制冷网 All Rights Reserved

联系邮箱: 514 676 113@qq.com