C#原型模式(深拷贝、浅拷贝)】的更多相关文章

Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina.com 目录 目录原型模式简介案例 原型模式 简介 定义:用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象. 原型模式主要用于对象的复制,它的核心是原型类Prototype. Prototype类需要具备以下两个条件: 实现Cloneable接口.Cloneable接口中没有声明任何方…
一.是什么? 浅拷贝:对值类型的成员变量进行值的复制,对引用类型的成员变量仅仅复制引用,不复制引用的对象 深拷贝:对值类型的成员变量进行值的复制,对引用类型的成员变量也进行引用对象的复制 内部机制: (1)关于Object类的clone方法 默认实现为"浅拷贝",重写Object类中的clone方法.Java中全部类的父类都是Object类,Object类中有一个clone方法.作用是返回对象的一个拷贝,可是其作用域是protected类型的,一般的类无法调用,因此Prototype类…
0.背景 克隆羊问题:有一个羊,是一个类,有对应的属性,要求创建完全一样的10只羊出来. 那么实现起来很简单,我们先写出羊的类: public class Sheep { private String name; private int age; private String color; //下面写上对应的get和set方法,以及对应的构造器 } 然后,创建10只一样的羊,就在客户端写一个代码创建: //原始羊 Sheep sheep = new Sheep("tom",1,&quo…
一.是什么? 定义:用原型实例指定创建对象的种类,而且通过拷贝这些原型创建新的对象.(官方定义) 原型模式主要用于对象的复制,它的核心是就是类图中的原型类Prototype. Prototype类须要具备下面两个条件: 1.实现Cloneable接口. 在java语言有一个Cloneable接口,它的作用仅仅有一个,就是在执行时通知虚拟机能够安全地在实现了此接口的类上使用clone方法.在java虚拟机中,仅仅有实现了这个接口的类才干够被拷贝,否则在执行时会抛出CloneNotSupported…
原型模式 定义 代码实现 优点 缺点 适用场景 参考 原型模式 定义 如果对象的创建成本比较大,而同一个类的不同对象之间差别不大(大部分字段都相同),在这种情况下,我们可以利用对已有对象(原型)进行复制(或者叫拷贝)的方式来创建新对象,以达到节省创建时间的目的.这种基于原型来创建对象的方式就叫作原型设计模式(Prototype Design Pattern),简称原型模式. 原型模式是能基于拷贝来的,对于拷贝我们知道有两种形式,深拷贝和浅拷贝 浅拷贝只复制指向某个对象的指针,而不复制对象本身,新…
原型模式(Prototype) 定义: 原型模式:用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象.被复制的实例被称为原型,这个原型是可定制的. Prototype Pattern也是一种创建型模式,它关注的是大量相同或相似对象的创建问题.应用原型模式就是建立一个原型,然后通过对原型来进行复制的方法,来产生一个和原型相同或相似的新对象,或者说用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象. 模式中的角色 抽象原型类(Abstract Prototype):提供一个克…
设计模式_11_原型模式(prototype) 浅拷贝: package designPatternOf23; /** * 定义:用原型实例,指定创建对象的种类,并通过拷贝这些原型创建新的对象 * Prototype类条件:实现Cloneable接口才可以被拷贝. * 重写Object类的clone方法,将拷贝的protected对象改为public * 有点适用场景:1.是object的基本方法,直接操作内存,复制大对象时,提升性能明显. * 2.简化创建,重复创建相似对象用 * 注意:1.使…
原型模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象.原型模式其实就是从一个对象再创建另一个可定制的对象,而且不需知道任何创建的细节. 比如说,有一个Person类,有firstName.lastName.friends这三个属性,代码如下: #import <Foundation/Foundation.h> @interface ZYPerson : NSObject { NSMutableSet *_friends; } @property (nonatomic, co…
原型模式就是用于创建重复的对象,当想要创建一个新的对象但是开销比较大或者想将对象的当前状态保存下来的时候,我们就可以使用原型模式. 创建原型 public abstract class Base { //因为String的特殊性,所以此次演示我们使用StringBuilder public StringBuilder Name { get; set; } public int Age { get; set; } public Base() { //模拟创建对象花费的开销 Thread.Sleep…
什么是深拷贝? 什么是浅拷贝? 创建一个对象的方法有几种? 默认的Object方法中的clone是深拷贝还是浅拷贝? 为什么说很多深拷贝都是不彻底的深拷贝? 什么是原型模型,什么是原型模式? 原型模型:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象. 原型模式:Prototype(原型模式)是一种创建型设计模式,Prototype模式允许一个对象再创建另外一个可定制的对象,根本无需知道任何如何创建的细节,工作原理是:通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象…