gpt4 book ai didi

java - 实现某些东西的主类是否违反单一职责原则?

转载 作者:行者123 更新时间:2023-11-29 05:27:18 24 4
gpt4 key购买 nike

实现某些东西的主类是否违反了单一职责原则?例如,在 http://docs.oracle.com/javase/tutorial/essential/concurrency/runthread.html 的 Java 教程中看到这个

public class HelloRunnable implements Runnable {

public void run() {
System.out.println("Hello from a thread!");
}

public static void main(String args[]) {
(new Thread(new HelloRunnable())).start();
}

}

在这个例子中,HelloRunnable 是否违反了单一职责原则?相反,这是一种拼凑吗?

编辑:假装这是一个真实案例(不是教程示例)——在那种情况下您怎么看?

最佳答案

main 方法通常不太符合“单一责任原则”。但它也并没有真正违反它。程序总是需要某种入口点来启动它 - 在 Java 中,这是一个 main 方法。从某种意义上说,main 方法中的代码并不真正属于此类。我经常看到的解决此问题的方法是创建一个“特殊”类,它只提供入口点。例如,您可以将本教程扩展为:

public class HelloRunnable implements Runnable {
public void run() {
System.out.println("Hello from a thread!");
}
}
public class Main {
public static void main(String args[]) {
(new Thread(new HelloRunnable())).start();
}
}

但是由于您问题的来源是教程,所以没有人关心设计原则。人们倾向于使代码尽可能小和简单。

关于java - 实现某些东西的主类是否违反单一职责原则?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22252515/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com