你什么时候使用新方法?

时间:2017-08-07 03:55:36

标签: java

打印姓名,年龄和性别的简单方法是在一个主要方法中对其进行编码。为什么我们必须制作多种方法呢?

public static void main(String[] args) {
    sayMaster();
    Age();
    Gender();
}

static void sayMaster() {
    System.out.println("Hello Master Austin");
}

static void Age() {
    System.out.println(7);
}

static void Gender() {
    System.out.println("Robot");
}

3 个答案:

答案 0 :(得分:1)

  

为什么我们必须制作多种方法呢?

实际上你根本不需要,但模块化是关键(记住divide et impera规则),您可以/需要更改其中一种方法,而不会出现代码被破坏的问题。

然后当你有这3种方法时,你总能做一个像

这样的优雅解决方案
public static void main(String[] args) {
    invokeThemAll(); 
}

public static void invokeThemAll() {
    sayMaster();
    printAge();
    printGender();
}

答案 1 :(得分:0)

首先,没有人强迫你制作只打印3个字符串的方法。

制作方法更可取。考虑必须执行此任务1000次的方案。您只需调用方法并发送参数,而不是写入1000次打印语句,只需3行代码即可完成休息。

答案 2 :(得分:0)

考虑一下:

您可以在哪个示例中立即告诉代码应该做什么?

示例1

public static void main(String... args) {
    A a = new A();
    // CODE
    // CODE
    // CODE
    // CODE
    // ... 100 lines of setting up A
    B b = new B(a);
    // CODE
    // CODE
    // CODE
    // CODE
    // ... 100 lines of setting up B
    // CODE
    // CODE
    // CODE
    // CODE
    // ... 500 other lines of code using a and b
}

示例2

public static A setupA() {
    A a = new A();
    // CODE
    // CODE
    // CODE
    // CODE
    // ... 100 lines of setting up A
    return a;
}

public static B setupB() {
    B b = new B();
    // CODE
    // CODE
    // CODE
    // CODE
    // ... 100 lines of setting up B
    return b;
}

public static void doFancyAlgorithm(A a, B b) {
    // CODE
    // CODE
    // CODE
    // CODE
    // 500 other lines of code using a and b
}

public static void main(String... args) {
    A a = setupA();
    B b = setupB();
    doFancyAlgorithm(a, b);
}

显然,示例2更容易阅读并且理解,因为它只包含3行,并且因为不同的职责被封装到不同的方法中。在不知道所述方法的实际实现的情况下,您将能够通过查看方法序列来了解主要功能。而在示例1中,您需要浏览每行代码才能理解。

此外,请考虑在代码中添加一些新功能:

public static void main(String... args) {
    A a = setupA();
    B b = setupB();
    doFancyAlgorithm(a, b);

    A a2 = setupA(); // new instance of a because we absolutely need that
    C c = setupC();
    doAnotherAlgorithm(a2, c);
}

现在,在设置A的新实例的情况下,我们可以简单地重复使用方法setupA(),这使得一切变得更轻松。否则我们需要重新设置整行100行。

这有另一个巨大的好处。如果您需要更改代码中的某些行,则只需要在一个地方(一次在方法内部而不是在代码发生的任何地方)更改它,这可以防止疏忽,复制 - 错误等等。