You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java类中用户提示信息的最佳实践:放在主类还是方法类?

关于Java类中提示文本的归属问题:主类还是方法所在类?

核心原则是:让提示文本和它的使用逻辑保持内聚,具体分两种场景判断:

  • 如果createTrain方法本身负责和用户交互(比如输出提示、接收输入,再执行创建逻辑),那提示文本应该定义在执行createTrain的类中
    理由很简单:这个提示是列车创建流程的一部分,和方法的职责绑定在一起。把文本放在同一个类里,后续修改提示语、维护逻辑时不用跨文件查找,代码的内聚性更强。
    示例代码:

    public class TrainManager {
        // 定义为静态常量,方便复用和修改
        private static final String CREATE_TRAIN_PROMPT = "Create how many trains?";
    
        public void createTrain() {
            System.out.println(CREATE_TRAIN_PROMPT);
            // 接收用户输入、创建列车的后续逻辑
        }
    }
    
  • 如果createTrain只专注于创建列车的业务逻辑,不处理任何用户交互(比如只接收参数、执行创建),那提示文本应该放在负责交互的主类(或专门的交互类)中
    这是遵循单一职责原则:业务方法只做核心业务,交互逻辑(提示、输入)交给专门的类处理。这样拆分后,以后要替换交互方式(比如从控制台换成GUI),只需要修改交互类,不会影响业务逻辑代码。
    示例代码:

    // 业务类:只处理列车创建的核心逻辑
    public class TrainManager {
        public void createTrain(int trainCount) {
            // 根据数量创建列车的逻辑
        }
    }
    
    // 主类:负责和用户交互
    public class TrainApp {
        private static final String CREATE_TRAIN_PROMPT = "Create how many trains?";
    
        public static void main(String[] args) {
            TrainManager manager = new TrainManager();
            System.out.println(CREATE_TRAIN_PROMPT);
            // 获取用户输入的列车数量
            int count = // 输入处理逻辑
            manager.createTrain(count);
        }
    }
    

额外的最佳实践建议

不管最终把文本放在哪个类里,都别直接把字符串硬编码在方法调用里(比如System.out.println("Create how many trains?")),建议定义成static final常量,这样不仅方便统一修改,也能避免重复代码。如果项目里有大量这类交互文本,甚至可以抽离到专门的常量类(比如AppMessages.java)或者配置文件中,方便集中管理和后续做国际化适配。

内容的提问来源于stack exchange,提问作者Kerem Tazedal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 06:41:07