这似乎是一个奇怪的问题:我正在努力决定在一个非常精细的层面上使用"类型对象"这是一个好的做法和"高效".
public Object[] doSomething() {
Object[] resultList = new Object[] {new Foo(), new Bar()};
return resultList;
}
Run Code Online (Sandbox Code Playgroud)
与
public Result doSomething() {
Result result = new Result();
result.foo = new Foo();
result.bar = new Bar();
return result;
}
public class Result{
Foo foo;
Bar bar;
}
Run Code Online (Sandbox Code Playgroud)
我的问题具体如下:
就CPU周期而言(作为相对数字),第二种方法消耗更多资源的程度.(比如100%以上)
关于内存消耗的相同问题
NB(这两个问题需要更多地了解,不是过早优化)
这是一件事,我总是想知道我是否应该为所有东西创建专用对象(用于传递值)或者我应该使用通用对象(和常用方法参数......)
这个问题也适用于
public doSomething(Query query )
Run Code Online (Sandbox Code Playgroud)
与
public doSomething(Foo foo, Bar bar, Aaaa, a, Bbbbb)
Run Code Online (Sandbox Code Playgroud)
谢谢
马库斯
3.)在"良好的设计实践"方面.你认为版本1是绝对的No-Go还是你认为它实际上并不重要...或者你会建议永远不会返回"对象阵列"(((在一个面向对象的编程语言/关于封装......) ))...
版本1 绝对不行.它几乎完全没有类型.调用者必须知道实际类型以及它们在数组中的位置,并进行适当的转换.您丢失了任何有用的编译时类型检查,并且代码本身明显不太清楚.
我永远不会返回,Object[]
除非它包含的值是用它构造的new Object()
.