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
相关产品推荐
相关产品推荐

