作用: 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 Prototype模式提供了一个通过已存在对象进行新对象创建的接口(Clone), Clone()实现和具体的语言相关,在C++中通过拷贝构造函数实现。 UML图如下: 代码如下: Prototype.h ...
以下是我自己学习设计模式的感想。 原型模式 学过C 的都知道拷贝构造函数,复制一个对象分为浅拷贝和深拷贝。 浅拷贝:就是给对象中的每个成员变量进行复制,就是把A 类中的变量直接赋给A 类中变量,属于值传递,但是涉及到有new之类内存分配的地方,他们却是共享内存的。 深拷贝:就是不仅使用值传递,而是要每个变量都有自己一份独立的内存空间,互不干扰。 默认的拷贝构造函数是浅拷贝的,如果要实现深拷贝,就需 ...
2013-06-23 20:05 2 8777 推荐指数:
作用: 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 Prototype模式提供了一个通过已存在对象进行新对象创建的接口(Clone), Clone()实现和具体的语言相关,在C++中通过拷贝构造函数实现。 UML图如下: 代码如下: Prototype.h ...
问题描述 看到这个模式,很容易想到小时候看的《西游记》,齐天大圣孙悟空发飙的时候可以通过自己头上的 3 根毛立马复制出来成千上万的孙悟空, 对付小妖怪很管用(数量最重要)。 Prototype 模式也正是提供了自我复制的功能, 就是说新对象的创建可以通过已有对象进行创建。在 C++中,拷贝 ...
原型模式 原型模式,属于对象创建型模式中的一种。通过复制原型对象的方法来创建一个对象实例,且该对象与原对象有相同的数据结构和值。类似我们在备份数据库信息的时候,将数据库中表的结构和数据的一同备份,生成一个数据库文件。 在Java环境中,要实现原型模式,要理解对象创建、引用和克隆 ...
都是基于个人理解,本文是为了帮助记忆。 相同点:原型模式和拷贝构造函数都是要产生对象的复制品。 不同点:原型模式实现的是一个clone接口,注意是接口,也就是基于多态的clone虚函数。也就是说原型模式能够通过基类指针来复制派生类对象。拷贝构造函数完不成这样的任务 ...
简单的复制粘贴代码会对以后的程序维护造成巨大的工作量。 为了避免这种灾难的诞生,我们今天来学习原型模式,还是用代码来逐步过渡到原型模式(创建型模式)的讲解吧。 假设今天开学啦,有小明,小红,小猪入学报到! 先来一个学生档案类,有院系,入学时间,毕业时间几个属性,和属性的set/get ...
找工作难呐 大家好,我原本是神剑山庄的铸剑师,名叫小赵,本来干的好好的,后来一时兴起,睡了三少爷的小姨子,与其一直提心吊胆,干脆来个逃之夭夭。 但是,我也要吃饭的呀,工作也得找,神剑山庄去 ...
原型模式算是JAVA中最简单的设计模式了,原因是因为它已经被提供了语言级的支持,但是如果提到它的实现原理,又是最复杂的一个设计模式。 (1)先看一下原型模式的UML类图 其中,Prototype是一个原型的抽象类或借口,它里面有一个共有方法,叫clone ...
一、原型模式介绍 原型模式:原型模式就是从一个对象再创建另外一个可定制的对象,而且不需要知道任何创建的细节。 所谓原型模式,就是java中的克隆技术,以某个对象为原型。复制出新的对象。显然新的对象具备原型对象的特点。效率高(避免了重新执行构造过程步骤) 克隆类似于new,但和new ...