java - 根据基本的 oop 约定,菜单代码应该在 main 方法中还是在类中?

标签 java oop

我是一名学生,我是 Java 新手,我正在做的这项作业是我要做的第一个必须严格遵循 oop 约定的作业。所以这可能是一个新问题。在编码菜单时,将菜单代码放在 main 方法中是否合适,还是应该放在一个类中并与其他所有内容一起实例化?

编辑: menu菜单是一个简单的命令行菜单,用数字输入,没有gui。还没那么远。

最佳答案

如果你想严格遵循 OOP 约定,你可以拥有自己的类,例如

abstract class MenuItem {
  int index;

  protected MenuItem(int index) {
    this.index = index;
  }

  abstract void action();
}

class ExitMenuItem {
  ExitMenuItem() {
    super(3); // the index value of the menu item
  }

  void action() {
    System.exit(0);
  }
}

这样您就可以为每个具有其行为的菜单项创建一个特定的子类。

然后你可以有一个菜单容器,例如:

class Menu {
  ArrayList<MenuItem> items;

  void executeAction(String input) {
    ..
  }
}

应该了解根据标准输入选择了哪个语音并执行它。当然,您可以通过为每个菜单项等设置默认文本来丰富一切。然后在你的 main 方法中,你只需实例化菜单并负责将标准输入输入转发给它。

请注意,这在简单的菜单中通常是多余的,但如果您想了解 OOP,那么这是一个很好的方法。

关于java - 根据基本的 oop 约定,菜单代码应该在 main 方法中还是在类中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12802768/

相关文章:

java - 如何在不使用绝对路径的情况下使用 log4j.properties 为 Java Web 服务创建日志文件

C++ 模板(泛型编程)与多态性?

performance - 使用静态方法与实例化包含方法的类的性能

c# - 在 C# 中模拟基数分配有多接近

java - ElasticSearch 事件监听器

java - ActionListener 找到按下的 JButton 的正确名称(不是出现的字符串)?

java - JAX-WS 和 Enunciate - 如何更改 Enunciate 的默认 XSD 命名约定

java - 定时运行任务java,apache

c++ - 命令设计模式的实现有一些错误?

java - 在 matlab classdef 中导入 java 类