三、单例模式之原型模式

原型模式:对象的属性的完全复制,包括基本类型属性和引用类型的对象的属性的安全复制。

复制的方式可划分为:

  1. 浅复制:一般通过clone实现,引用类型的属性复制的是引用,而不是新的对象。原型对象需要实现java.lang.Cloneable。
  2. 深复制:
    1. 可以通过手动进行set赋值,引用对象类型的属性,先创建该对象再赋值。
    2. 通过序列化的方式进行赋值。对象需要实现java.io.Serializable。

原文地址:https://www.cnblogs.com/kancy/p/10226970.html

时间: 2024-07-29 05:13:47

三、单例模式之原型模式的相关文章

三分钟理解“原型模式”——设计模式轻松掌握

原型模式的官方定义: 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象. 大白话: 现在有一个类,它要产生大量的对象,而且这些对象中的属性值大部分都相同:如果我们要获取这样一个对象的时候每次都通过new,然后再set每一个属性值,那么这样就太麻烦了.这种情况下使用原型模式非常便捷: 我们让这个类去实现ICloneable接口,并且实现该接口的clone()函数,在clone函数中让当前对象进行一次浅拷贝/深拷贝,总之就是克隆一个当前对象来,这样我们就无需new完了对象后再逐个set

设计模式(创建型)之原型模式(Prototype Pattern)

PS一句:最终还是选择CSDN来整理发表这几年的知识点,该文章平行迁移到CSDN.因为CSDN也支持MarkDown语法了,牛逼啊! 概述 原型模式是一种创建型设计模式,它通过复制一个已经存在的实例来返回新的实例,而不是新建实例.被复制的实例就是我们所称的原型,这个原型是可定制的.原型模式多用于创建复杂的或者耗时的实例, 因为这种情况下,复制一个已经存在的实例可以使程序运行更高效,或者创建值相等,只是命名不一样的同类数据. 原型模式要求对象实现一个可以"克隆"自身的接口,这样就可以通过

原型模式(Prototype)

?一.原型模式介绍 原型模式:原型模式就是从一个对象再创建另外一个可定制的对象,而且不需要知道任何创建的细节. 所谓原型模式,就是java中的克隆技术,以某个对象为原型.复制出新的对象.显然新的对象具备原型对象的特点.效率高(避免了重新执行构造过程步骤) 克隆类似于new,但和new不同.new创建新的对象属性采用的是默认值.克隆出来的对象的属性值完全和原型对象相同.并且克隆出的新对象不会影响原型对象,克隆后.还可以再修改克隆对象的值. 要实现原型模式,必须实现Cloneable接口,而这个接口

原型模式——HeadFirst设计模式学习笔记

原型模式:通过复制一个已经存在的实例来返回新的实例,而不是新建实例.被复制的实例就是我们所称的原型,这个原型是可定制的(clone) 特点: 向用户隐藏了创建新实例的复杂性 让用户可以产生未知类型的对象,即只需知道对象实现了哪些接口,而无需知道具体是哪种实现 在某些情况下,复制对象比创建对象更高效 Prototype类需要具备以下两个条件: 实现Cloneable接口.在java语言有一个Cloneable接口,它的作用只有一个,就是在运行时通知虚拟机可以安全地在实现了此接口的类上使用clone

iOS设计模式----原型模式

原型模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象.原型模式其实就是从一个对象再创建另一个可定制的对象,而且不需知道任何创建的细节. 比如说,有一个Student类,有firstName(姓).lastName(名).friends这三个属性 原型模式依赖于NSCopying协议,需要实现-copyWithZone方法 Student.h Student.m main.m

JavaScript 面向对象 (prototype 原型模式)

一. JavaScript 设计思想 1994年,网景公司(Netscape)发布了Navigator浏览器0.9版.这是历史上第一个比较成熟的网络浏览器,轰动一时.但是,这个版本的浏览器只能用来浏览,不具备与访问者互动的能力.比如,如果网页上有一栏"用户名"要求填写,浏览器就无法判断访问者是否真的填写了,只有让服务器端判断.如果没有填写,服务器端就返回错误,要求用户重新填写,这太浪费时间和服务器资源了. 因此,网景公司急需一种网页脚本语言,使得浏览器可以与网页互动.工程师_Brend

跟着实例学习设计模式-原型模式(prototype)

原型模式是创建型模式. 设计意图:用原型实例指定创建对象的类型,并通过拷贝这个原型来创建新的对象. 我们使用构建简历的例子的类图来说明原型模式. 类图: 原型模式主要用于对象的复制,它的核心是就是类图中的原型类Prototype.这里我们定义了一个抽象的原型接口,声明了用于clone自己的方法,这里我们已创建简历为具体原型类,Prototype类需要具备以下两个条件: 实现Cloneable接口.在java语言有一个Cloneable接口,它的作用只有一个,就是在运行时通知虚拟机可以安全地在实现

设计模式之原型模式prototype

1.原型模式的使用和本质.以及优势: a.通过 new 产生一个对象需要非常繁琐的数据准备或者访问权限,则可以使用原型模式. b.原型模式的使用就是 java 中的克隆技术,以某个对象为原型,复制出新的对象.显然,新的对象具备原型对象的特点. c.其优势有:效率高(直接克隆,避免了重新执行构造过程步骤). d.克隆类似于 new, 但是不同于 new .new 创建新的对象属性采用的是默认值.克隆出的对象的属性值完全和原型对象相同.并且克隆出来的新对象改变不会影响原型对象.(可以对克隆对象修改属

(7)原型模式

定义:用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象. 类型:创建类模式 类图: 原型模式主要用于对象的复制,它的核心是就是类图中的原型类Prototype.Prototype类需要具备以下两个条件: l  实现Cloneable接口.在java语言有一个Cloneable接口,它的作用只有一个,就是在运行时通知虚拟机可以安全地在实现了此接口的类上使用clone方法.在java虚拟机中,只有实现了这个接口的类才可以被拷贝,否则在运行时会抛出CloneNotSupportedExce