据称以下代码违反了 OO 指导原则。
public class Main {
public static String NAME = "James";
public Main() {
System.out.println("Name is: "+NAME);
}
}
public class AnotherMain() {
public AnotherMain() {
System.out.println("Print name: "+Main.NAME);
}
}
我所能猜测的是它可能有一个抽象类,它有一个具体的方法,比如 print(String message) ,然后有 Main 类和 AnotherMain 类来扩展抽象类,然后传递它们要打印的消息进入其父抽象类中实现的 print() 方法。然后在他们的构造函数中,他们会调用 print("Name is: "+NAME)。这将使构造函数免于调用 System.out.println() 两次。
但我仍然持怀疑态度,因为它说代码中有一些违反 OO 指导原则的内容。
对此有什么建议吗? 谢谢。
最佳答案
就在我的头顶上,
System.out.println("Print name: "+Main.NAME);
通过访问独立类拥有的东西来破坏封装;如果是这样的话,那么 NAME
应该独立于这两个类并导入到它们的作用域中。
关于java - 违反 OO 指导原则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6374987/