这似乎是一个奇怪的问题:我正在努力确定在非常精细的级别上使用“类型化对象”是否是一种好的做法和“有效”。
public Object[] doSomething() {
Object[] resultList = new Object[] {new Foo(), new Bar()};
return resultList;
}
对比
public Result doSomething() {
Result result = new Result();
result.foo = new Foo();
result.bar = new Bar();
return result;
}
public class Result{
Foo foo;
Bar bar;
}
我的问题具体如下:
就 CPU 周期而言(作为一个相对数字),第二种方法消耗的资源多多少。 (喜欢 100% 以上)
关于内存消耗的同样问题
NB(这两个是多加理解的问题,不是过早优化)
- 在“良好设计实践”方面。你认为版本 1 是绝对禁止的,还是你认为它实际上无关紧要......或者你会建议永远不要返回“对象数组”(((在面向对象的编程语言中)))...
这很重要,我一直在想我是否应该为所有东西创建专用对象(用于传递值)或者我应该使用通用对象(和通用方法参数......)
这个问题也适用于
public doSomething(Query query )
对比
public doSomething(Foo foo, Bar bar, Aaaa, a, Bbbbb)
谢谢
马库斯
最佳答案
3.) In terms of "good design pratice". Do you think version 1 is an absolute No-Go or do you rather think it actually does not matter...Or would you propose never returnung "object Arrays" (((in an object oriented programming langauge/regarding encapsulation ...)))...
版本 1 绝对是不行的。它几乎完全没有类型。调用者必须知道实际类型以及它们在数组中的位置,并进行适当的转换。您失去了任何有用的编译时类型检查,并且代码本身显着不那么清晰。
我永远不会返回 Object[]
除非它包含的值是用 new Object()
构造的。
关于Java = Return Object list/array vs. Result-Object(与方法参数相同),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6253639/