纯手写理解设计模式代码之原型模式

原型模式

也称为克隆模式,属于创建型模式

普通版
package com.demo.prototype;

/**
 * 原型模式(克隆模式)
 * 创建型模式
 * 就是通过原型对象返回一个完全相同或相近的对象,包括其中的属性值
 * 可以在不知道对象的具体类型的情况下创造对象
 * 并且对于那些创建十分耗时的对象来说,clone比new速度快
 */
public class Prototype implements Cloneable{
    //JDK中有实现原型模式的方法,但是该对象所对应的类必须实现Cloneable的接口
    Prototype prototype = new Prototype();
    public  Prototype Clone() throws CloneNotSupportedException {
        return (Prototype) prototype.clone();
    }
}
深克隆原理版
package com.demo.prototype;

/**
 * 深克隆原理版
 * 由下可看出:
 * 无论是对克隆对象d1的Y或者通过d1修改C的X的值
 * 都不再对原型对象的值进行修改,也就是互不影响了
 * 原理:
 * 深克隆在对原型对象进行克隆时,会将原型对象的每个引用类型的属性也克隆一份
 * 并且赋值给克隆对象
 */
public class DeepPrototype {
    public static void main(String[] args) throws CloneNotSupportedException {
        C c = new C();
        c.setX(1);
        D d = new D();
        d
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值