前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >设计模式-原型模式(一)

设计模式-原型模式(一)

原创
作者头像
堕落飞鸟
发布2023-05-03 15:12:24
3221
发布2023-05-03 15:12:24
举报
文章被收录于专栏:飞鸟的专栏飞鸟的专栏

原型模式是一种创建型设计模式,它可以通过克隆已有的对象来创建新的对象,避免了重复创建相似对象的开销。原型模式是一种基于对象复制的创建方式,它能够在运行时动态地生成新对象,并根据需要进行修改。

在原型模式中,我们需要定义一个原型接口或抽象类,这个接口或抽象类需要定义用于复制自身的方法。然后我们可以通过实现这个接口或抽象类来创建具体的原型对象,并通过克隆已有的对象来生成新对象。

下面我们通过一个例子来详细介绍原型模式的使用方法和实现细节。

假设我们有一个学生类,其中包含学生的姓名和年龄信息,我们希望能够根据已有的学生对象创建新的学生对象,并根据需要修改新对象的属性。我们可以使用原型模式来实现这个需求。

首先,我们需要定义一个原型接口,该接口中需要包含用于复制自身的方法:

代码语言:javascript
复制
public interface Prototype {
    Prototype clone();
}

然后,我们需要定义一个具体的学生类,实现原型接口并重写复制方法:

代码语言:javascript
复制
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;
    }
    
    @Override
    public Prototype clone() {
        return new Student(name, age);
    }
}

在这个学生类中,我们定义了学生的姓名和年龄属性,并实现了原型接口中的 clone() 方法,该方法返回一个新的学生对象并复制原有对象的属性。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com