java - 违反 OO 指导原则

标签 java oop

据称以下代码违反了 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/

相关文章:

java - Mockito 模拟所有方法调用和返回

python - 对名称修改目的的总结正确吗?

c# - 学习TDD,总是陷入循环依赖

php - fatal error : Cannot use object of type stdClass as array

java - 更改 tomcat 基本 URL

java - 检测 Java 异常的责任变量

java - Java shebang 应用程序中的图标资源

java - 将长时差转换为格式 HH :mm [Java]

java - "new"Java(Android) 中的关键字 :D

c++ - 有没有办法避免在特定的自定义类继承结构中使用虚拟方法?