小白都能懂的设计模式 java版 原型模式 原理和实战练习(超详细)

本文介绍了设计模式中的原型模式,这是一种创建型模式,通过原型对象复制来简化新对象的创建。以Java为例,展示了如何创建原型对象并调用clone接口,虽然哈希码不同,但内容相同的实例,帮助读者理解原型模式的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原型模式也是一种创建型模式:
表示以某个东西为原型,进行拷贝
这个比较简单,直接可以看代码:
先写一个radio对象

package prototype;

import javax.xml.crypto.Data;
import java.util.Date;

//实现一个接口Cloneable, 重写一个方法clone()
//video类
public class Video implements Cloneable {
   private String name;
   private Date creatTime;

    @Override
    protected Object clone() throws CloneNotSupportedException {
        return super.clone();
    }

    public Video() {
    }

    public Video(String name, Date creatTime) {
        this.name = name;
        this.creatTime = creatTime;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Date getCreatTime() {
        return creatTime;
    }

    public void setCreatTime(Date creatTime) {
        this.creatTime = creatTime;
    }

    @Override
    public String toString() {
        return "Video{" +
                "name='" + name + '\'' +
                ", creatTime=" + creatTime +
                '}';
    }
}

调用clone接口:

package prototype;

import java.util.Date;

//客户端
public class Bilibili {
    public static void main(String[] args) throws CloneNotSupportedException {

        //原型对象
        Date date = new Date();
        Video v1 = new Video("笑笑", date);
        System.out.println("v1 = " + v1);
        System.out.println("v1.hashcode:" + v1.hashCode());

        //v2克隆一下
        //原来写法:Video v1 = new Video("笑笑", date);
        Video v2 = (Video) v1.clone();
        System.out.println("v2 = " + v2);
        System.out.println("v2.hashcode:" + v2.hashCode());

    }
}

在这里插入图片描述
哈希code是不一样的,说明是两个对象,但是内容是一模一样的

好的,今天先到这里~

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值