prototype-pattern相关内容

Java 'Prototype' 模式 - new vs clone vs class.newInstance

在我的项目中,有一些“原型"工厂通过克隆最终的私有实例来创建实例. 那些工厂的作者说这种模式比调用“new"操作符提供更好的性能. 使用谷歌得到一些线索,我没有发现任何相关的东西.这是在 javdoc 中发现的一小段摘录项目 遗憾的是,clone() 比叫新.然而这是很多比打电话还快java.lang.Class.newInstance() 和比滚动我们自己的要快一些“克隆"方法 ..
发布时间:2021-06-15 19:21:46 Java开发

Yegge的原型模式示例如何处理实例变量?

我喜欢Steve Yegge的原型模式示例和决定提出一个快速的概念证明示例. 但是,我并没有真正考虑到问题.尽管它对于动态指定对象的行为非常有用,并且它是解决Steve 带蛋白的精灵例如,我仍在尝试找出处理实例变量的最佳方法. 例如,假设我有一个AwesomeDragon对象.然后,我想制作一个AwesomeDragonImmuneToFire对象,以便制作一个AwesomeDrago ..

克隆(通过Cloneable接口或Copy构造函数)对象的性能与在原型模式中创建新对象的性能

最近,在学习设计模式的同时,我了解到原型模式在需要创建大量对象的情况下非常有用且高效. 原型模式还通过使用原型模式中的Cloneable接口或Copy构造函数来最大程度地减少创建过多对象的开销. 但是,我想知道克隆或复制一个对象比创建一个新对象更有效.JVM级别的解释会很好. 这是使用原型模式的唯一原因吗? 解决方案 原型模式未用于提高性能(尽管根据Ioannis的链接, ..
发布时间:2021-04-30 19:25:16 Java开发

克隆设计模式适配器-避免切片子对象(类似于原型模式)

在某些情况下,我有一个指向基类的指针的容器,而其中一些指针实际上指向派生类的对象.我需要在容器中创建每个对象的副本,而不必在复制过程中切掉对象的派生“部分". 执行此操作的一种常见方法是实现“虚拟父级clone()"方法之类的方法.这要求层次结构中的每个类都使用自己的类型来实现自己的clone()方法.这就要求将来尚未编写的子类实现父类期望的行为,但无法强制这样做.相反,我编写了一个“适配器 ..
发布时间:2021-04-22 19:31:36 C/C++开发

原型设计模式的重点是什么?

所以我正在学校学习设计模式。今天,有人告诉我“原型”设计模式。 我一定想念一些东西,因为我看不到它的好处。我见过网上人说它比使用 new 更快,但这没有道理;在某个时候,无论如何创建新对象,都需要为其分配内存。 这种模式是否与“鸡肉或鸡蛋”问题处于同一圈子?由于原型模式本质上只是克隆对象,因此在某些时候必须创建原始对象(即不克隆)。这将意味着我需要为要克隆的每个对象都准备好要克隆的现有 ..
发布时间:2020-10-21 01:17:42 其他开发

遵循原型设计模式的Spring原型

Spring将bean范围提供为“原型".意味着每当应用程序需要bean时,Spring容器都会创建一个bean的新实例. 是否也遵循原型设计模式? 它是否仅创建对象一次,并且在随后的请求中对创建的对象调用clone()方法来创建新对象? 如果有人可以提供JDK,Spring,Hibernate或任何J2EE框架中的原型示例,那么 解决方案 没有spring不使用克隆来创建原型范围内 ..
发布时间:2020-07-09 02:47:16 其他开发

使用原型图案

我有一个问题。我需要创造一些与产品有关的事情。现在我可以说7种不同类型的产品。有些是其他的亚型,例如 汽车 - Vans - 汽油 - 柴油 - 城市 - 掀背车 - 沙龙 - 庄园 - 汽油 - 柴油 现在,为了争论,我所有的城市,两厢车和轿车都是混合动力/燃气/不管什么,我不打算出售汽油和柴油。然而,有可能在将来有时候会有汽油和柴油 ..
发布时间:2017-05-16 18:24:34 PHP

在Java中的原型模式 - clone()方法

所以,我一直在阅读设计模式,原型模式让我感到困惑。我相信使用它的一点是避免使用新的操作符。然后我看这个例子: http://sourcemaking.com/design_patterns/prototype/java/1 首先,他们对Prototype的想法实现了一个clone()方法,这是奇怪的。维基百科还表示,我需要一个纯虚拟方法克隆来实现子类(为什么?)。 Java是不是已经提 ..
发布时间:2017-05-14 10:17:58 Java开发

关于原型模式的问题

我正在了解不同的设计模式,我有强烈的感觉,我在理解这种特定模式时缺少一个重要的部分(或几件)。 我看过的网站,在GoF书中,我看到了克隆方法。根据我的理解,当我们需要不同版本的对象时,我们可以克隆一些类型的对象,但是我们不需要使用“new”命令手动创建每个对象(如在Java中)。这可以隐藏其具体实现。所以当我们克隆时,我们可以调整克隆只是一点点,并使其成为我们需要的,而不必知道如何最初创建该 ..
发布时间:2017-05-14 09:53:49 软件设计

德尔福原型图

我想知道,Delphi的RTTI中是否有任何与MemberwiseClone在C#中一样的原型模式的简单实现。 我看到这个模式的一些Delphi实现,其中正在创建一个新对象(TMyObject.Create),它的属性分配了原型对象的值。我可能是错的,但是如果我们以相同的基本方式创建对象,我看不到模式的好处。 谢谢。 解决方案 没有内置的内容会为您执行深层克隆。我相信你可以根据新的 ..
发布时间:2017-04-24 22:47:36 Delphi