1

我只想问以下哪种情况更好:

import com.x.x.x.Document;
.
.
Document doc=user.getDoc();
MyFile file=Converter.getFile(doc.getFile());
MyTheme theme=Converter.getTheme(doc.getTheme());

或者

MyFile file=Converter.getFile(user.getDoc().getFile());
MyTheme theme=Converter.getTheme(user.getDoc().getTheme());

由于第一种情况需要导入Documentsecond 不需要,同时 second 需要多次调用getDoc()first 不需要,所以可读性和功能更好

4

2 回答 2

3

第一种带有 local 的样式doc更优越,主要是因为它的可读性:代码的读者不必猜测(或阅读文档)是否getDoc()在多次调用中返回相同的实例,并确保您正在进行调用在完全相同的实例上。

性能可能是也可能不是问题,具体取决于getDoc(). 不过,第一种使用方式(带有doc)至少与第二种使用方式一样快。

于 2013-05-22T12:44:44.993 回答
1

由于第一种情况需要导入 Document 第二个不

不确定您的意思:在这两个示例中,您都需要参考您的文档。这两个示例在功能和性能方面是相同的(假设getDoc只是一个吸气剂)。

然而,我会使用第一个版本有两个原因:

  • 我发现它比连续的方法调用更具可读性
  • 如果您的用户是null,您将在线获得 NPE,Document doc = user.getDoc();因此很明显(在第二个示例中,如果您在 上获得 NPE MyFile file = Converter.getFile(user.getDoc().getFile());,它可能是用户或文档为空)。
于 2013-05-22T12:43:45.760 回答