博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
23种设计模式之原型模式代码实例
阅读量:5126 次
发布时间:2019-06-13

本文共 1486 字,大约阅读时间需要 4 分钟。

原型模式就是利用一个克隆”原型“来产生新对象的一种模式,

克隆又分浅克隆与深克隆,

浅克隆:将一个对象复制后,基本数据类型的变量都会重新创建,而引用类型,指向的还是原对象所指向的。

深克隆:将一个对象复制后,不论是基本数据类型还有引用类型,都是重新创建的。简单来说,就是深复制进行了完全彻底的复制,而浅复制不彻底。

具体代码如下:

import java.io.Serializable;class SerializableObject implements Serializable {    private static final long serialVersionUID = 1L;}
import java.io.*;public class Prototype implements Cloneable,Serializable {    private static final long serialVersionUID = 1L;    private String string;    private SerializableObject obj;    /* 浅复制 */    public Object clone() throws CloneNotSupportedException {        Prototype proto = (Prototype) super.clone();        return proto;    }    /* 深复制 */    public Object deepClone() throws IOException, ClassNotFoundException {        /* 写入当前对象的二进制流 */        ByteArrayOutputStream bos = new ByteArrayOutputStream();        ObjectOutputStream oos = new ObjectOutputStream(bos);        oos.writeObject(this);        /* 读出二进制流产生的新对象 */        ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());        ObjectInputStream ois = new ObjectInputStream(bis);        return ois.readObject();    }    public String getString() {        return string;    }    public void setString(String string) {        this.string = string;    }    public SerializableObject getObj() {        return obj;    }    public void setObj(SerializableObject obj) {        this.obj = obj;    }}

 到此为止五种创建型模式:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。代码实例完成。

转载于:https://www.cnblogs.com/longhaolove/p/7847164.html

你可能感兴趣的文章
struts2拦截器详解
查看>>
Mysql常用语句
查看>>
.Net学习笔记----2015-06-30(超市收银系统01-仓库类)
查看>>
累觉不爱
查看>>
Flyweight Design Pattern 共享元设计模式
查看>>
ftp的本地用户搭建
查看>>
Flume环境搭建_五种案例(转)
查看>>
uva11991 Easy Problem from Rujia Liu?
查看>>
你理解我的意思么?
查看>>
CEF 添加F5刷新快捷键
查看>>
线性回归的Spark实现 [Linear Regression / Machine Learning / Spark]
查看>>
贝叶斯原理及其推断简介
查看>>
根据txt文件处理的方法总结
查看>>
uWSGI安装配置
查看>>
django_4:数据库1——django操作数据库
查看>>
grid layout
查看>>
VUE 使用中踩过的坑
查看>>
Solarized ----vim配色方案
查看>>
2019湖南多校第三场
查看>>
数据库连接
查看>>