自大学以来,我已经用 Java 编程了 3 年,虽然我并没有完全专注于这门语言,但我已经在它上面花费了相当多的时间。两种方式我都懂,只是好奇你更喜欢哪种风格。
请关注主要方法 - 这是我最关心的部分。
public class Test
{
public static void main(String[] args)
{
System.out.println(getAgent().getAgentName());
}
private static Agent getAgent()
{
return new Agent();
}
}
class Agent
{
private String getAgentName()
{
return "John Smith";
}
}
我对像下面这样的嵌套方法调用非常满意
public class Test
{
public static void main(String[] args)
{
System.out.println(getAgentName(getAgent()));
}
private static String getAgentName(Agent agent)
{
return agent.getName();
}
private static Agent getAgent()
{
return new Agent();
}
}
class Agent
{
public String getName()
{
return "John Smith";
}
}
他们有相同的输出我看到“John Smith”两次。
我想知道,这样做的一种方式是否比另一种方式具有更好的性能或其他优势。就我个人而言,我更喜欢后者,因为对于嵌套方法,我当然可以分辨出哪个先开始,哪个在后。
上面的代码只是一个示例,我现在使用的代码要复杂得多,有点像迷宫......所以在两种风格之间切换经常让我立刻头晕。
最佳答案
我会反对后一种风格,因为它将数据检索与“业务逻辑”(即如何处理数据)混合在一起。 使用第一种方法,您可以高度自由地处理数据,例如
public static void main(String[] args)
{
System.out.println(getAgent().getAgentName());
System.err.println(getAgent().getAgentName());
someTextArea.append("The agent name is: " + getAgent().getAgentName());
// etc
}
如果您选择以这种方式做事,至少要用能清楚描述所做的事情的名称来命名函数,例如
private static void getAgentNameAndPrintIt(Agent agent)
{
System.out.println(agent.getName());
}
关于java - 嵌套方法 vs "piped"方法,哪个更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2437570/