为什么我必须在此代码中使用额外的方法?

时间:2017-06-14 19:55:57

标签: java

我不明白为什么我必须在这段代码中使用square()?为什么我不能在String中添加n次n?

static int square(int n){
   return n*n;
}
static void ausgabe(int n){
   String s;
   int i = n;
   s = "SquareOf" + i + " = " + square(i);
   Sysout(s);
}

我的解决方案是错过方法,只需添加如下

s = "SquareOf" + i + " = " + i*i;

我试过,结果总是正确的。但是我们的书提出了第一种方式,我想知道为什么它们会让我的眼睛变得更加复杂。

提前致谢。

2 个答案:

答案 0 :(得分:3)

嗯,你是部分正确的,但是当你根据他们所做的事情拆分东西时,软件的开发会更好......

方法 Ausgabe 有一项工作:仅显示结果

square 方法有一个工作:只进行数学运算

因此软开发背后的重点不在于代码的工作原理

我们尝试做其他事情:

  • 必须工作
  • 必须易于维护
  • 必须易于改进

所有这些要求都与项目的复杂性有关,可以基于single responsibility principle

来达成

答案 1 :(得分:2)

对于像unique_ptr<Foo> foo(new Foo); boost:map_ptr<int, Foo> m; m.insert(5, foo); // Does not compile m.insert(5, move(foo)); // Does not compile either, // this should be the right thing to do m.insert(5, move.release()); // Does compile, but isn't exception safe 这样微不足道的东西,你不需要一个方法。但是,如果不得不做一个需要相当多行代码的更复杂的操作,那么将它放在自己的方法中是个好主意,以保持代码清洁,易于阅读,理解和维护。此外,如果您需要在程序中的多个点执行相同的操作,那么方法将是有益的,因为您不必在不同的地方反复复制/粘贴相同的代码。