Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring 不希望在调用API时重复生成对象_Spring_Api_Object - Fatal编程技术网

Spring 不希望在调用API时重复生成对象

Spring 不希望在调用API时重复生成对象,spring,api,object,Spring,Api,Object,在Spring中,当我调用这个API时,需要创建一个对象,但是这个对象的参数每次都不同。 这不是个好主意吗?我怎样才能改进它?使用setter重置参数?根据您的描述,我相信您可能会面临过早优化的风险,也就是说,您会花大量时间担心一些无关紧要的事情。更糟糕的是,对内存或cpu进行优化通常会降低可读性,从而使bug更容易引入。因此,只有当您有一个明显的问题,并且探查器显示该区域是问题的根源时,您才应该为内存或cpu进行优化(适当的内存或cpu探查器) 举个例子,您担心每个请求都会生成一个列表(可能是

在Spring中,当我调用这个API时,需要创建一个对象,但是这个对象的参数每次都不同。
这不是个好主意吗?我怎样才能改进它?使用setter重置参数?

根据您的描述,我相信您可能会面临过早优化的风险,也就是说,您会花大量时间担心一些无关紧要的事情。更糟糕的是,对内存或cpu进行优化通常会降低可读性,从而使bug更容易引入。因此,只有当您有一个明显的问题,并且探查器显示该区域是问题的根源时,您才应该为内存或cpu进行优化(适当的内存或cpu探查器)

举个例子,您担心每个请求都会生成一个列表(可能是一个Arraylist?)。这些本身就是小数据结构(可能只占总内存使用量的一小部分),它们只有在包含大量其他大型对象时才会变大,更糟糕的是,您建议重置列表并在api请求之间重用它。重复使用和重新设置列表将引入一个只会间歇性出现的微妙缺陷(最糟糕的缺陷);如果两个API请求重叠(很可能是web服务器),那么它们将同时使用该列表;请求A的状态可能泄漏到B,反之亦然。这几乎是一个完美的例子,说明了为什么不应该过早地进行优化


(如果列表中包含从未更改过的静态数据,那么我的答案可能会有所不同)

如果对象的参数不同,那么每次都不是真正使用同一个对象。为什么您认为在每个请求上实例化一个对象是一件坏事?(在请求之间共享和变异一个可能是一个非常糟糕的主意,如果两个请求同时出现会怎么样)。一个代码示例有助于准确地演示您正在做什么,但如果有更多的请求,将生成许多对象,这是一件坏事。为什么这是一件坏事?这些物体很大吗?它们是什么?这是一个列表对象,我认为它很大。不是它自己。什么大小的列表,包含什么。此外,我非常确定这是过早的优化。如果尚未运行探查器并确定存在问题,则不应尝试寻找解决方案(解决可能不存在的问题)