设计模式之第9章-原型模式(Java实现) “快到春节了,终于快放假了,天天上班好累的说.”“确实啊,最近加班比较严重,项目快到交付了啊.”“话说一到过节,就收到铺天盖地的短信轰炸,你说发短信就发吧,大多数还是一样的,群发.”“就是就是,上次我收到一个,竟然连名字都给弄错了,简直没法说啊,要不然就不发得了,干嘛弄得那么麻烦.”“所以说,才会有群发的短信我不回这个段子嘛.”“对了,今天你不是就要讲那个原型模式什么的,就是类似于群发的是吧.”“嘿嘿,天机不可泄露.”(PS:还天机不可泄露,学会吊起胃…
概述 在软件系统中,有时候面临的产品类是动态变化的,而且这个产品类具有一定的等级结构.这时如果用工厂模式,则与产品类等级结构平行的工厂方法类也要随着这种变化而变化,显然不大合适.那么如何封装这种动态的变化?从而使依赖于这些易变对象的客户程序不随着产品类变化? 意图 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象. 结构图 Prototype模式结构图 生活中的例子 Prototype模式使用原型实例指定创建对象的种类.新产品的原型通常是先于全部产品建立的,这样的原型是被动的,并不…
原型模式(Prototype Pattern) ——.NET设计模式系列之六 Terrylee,2006年1月 概述 在软件系统中,有时候面临的产品类是动态变化的,而且这个产品类具有一定的等级结构.这时如果用工厂模式,则与产品类等级结构平行的工厂方法类也要随着这种变化而变化,显然不大合适.那么如何封装这种动态的变化?从而使依赖于这些易变对象的客户程序不随着产品类变化? 意图 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象. 结构图 Prototype模式结构图 生活中的例子 Pr…
推荐阅读:  我的CSDN  我的博客园  QQ群:704621321       在软件开发过程中,我们习惯使用new来创建对象.但是当我们创建一个实例的过程很昂贵或者很复杂,并且需要创建多个这样的类的实例时.如果仍然用new操作符去创建这样的类的实例,会导致内存中多分配一个一样的类实例对象,增加创建类的复杂度和消耗更多的内存空间.       如果采用简单工厂模式来创建这样的系统.随着产品类增加,子类数量不断增加,会增加额外系统复杂程度,为此我们不得不引入原型模式了. 原型模式(Protot…
本笔记摘抄自:https://www.cnblogs.com/PatrickLiu/p/7640873.html,记录一下学习过程以备后续查用.  一.引言 很多人说原型设计模式会节省机器内存,他们说是拷贝出来的对象是原型的复制,不会使用内存.我认为这是不对的,因为拷贝出来的每一个对象都是实际 存在的,每个对象都有自己独立的内存地址且会被GC回收.如果就浅拷贝来说,可能会公用一些字段(引用类型),但深拷贝是不会的.所以说原型设计模式会 提高内存使用率是不一定的,具体还要看当时的设计,如果拷贝出来…
Java 设计模式系列(五)原型模式 原型模式属于对象的创建模式.通过给出一个原型对象来指明所有创建的对象的类型,然后用复制这个原型对象的办法创建出更多同类型的对象.这就是选型模式的用意. 一.原型模式的结构 原型模式要求对象实现一个可以"克隆"自身的接口,这样就可以通过复制一个实例对象本身来创建一个新的实例.这样一来,通过原型实例创建新的对象,就不再需要关心这个实例本身的类型,只要实现了克隆自身的方法,就可以通过这个方法来获取新的对象,而无须再去通过 new 来创建. 原型模式有两种…
):原型模式(Prototype Pattern)    );         //使用颜色         string colorName = "red";         ConcteteColorPrototype c1 = (ConcteteColorPrototype)colormanager[colorName].Clone(false);         c1.Display(colorName);         colorName = "peace&quo…
首先对原型模式进行一个简单概念说明:通过一个已经存在的对象,复制出更多的具有与此对象具有相同类型的新的对象. 在理解Java原型模式之前,首先需要理解Java中的一个概念:复制/克隆. 在博文<Java总结篇系列:java.lang.Object>一文中,对Java中的clone()方法进行了一定的阐述.同时,我们需要知道,Java中的对象复制/克隆分为浅复制和深复制. 一.浅复制: 我们知道,一个类的定义中包括属性和方法.属性用于表示对象的状态,方法用于表示对象所具有的行为.其中,属性既可以…
认识原型模式 原型模式是比较简单的设计模式.废话不多说,直接看定义:用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象.通过实例指定种类,种类就是初始化的类,然后通过拷贝创建对象.先展示一个实现的原型模式的例子 public class Product { private String proID; private String proName; private String proDescption; public String getProID() { return proID;…
原型模式 定义 代码实现 优点 缺点 适用场景 参考 原型模式 定义 如果对象的创建成本比较大,而同一个类的不同对象之间差别不大(大部分字段都相同),在这种情况下,我们可以利用对已有对象(原型)进行复制(或者叫拷贝)的方式来创建新对象,以达到节省创建时间的目的.这种基于原型来创建对象的方式就叫作原型设计模式(Prototype Design Pattern),简称原型模式. 原型模式是能基于拷贝来的,对于拷贝我们知道有两种形式,深拷贝和浅拷贝 浅拷贝只复制指向某个对象的指针,而不复制对象本身,新…