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

如何重构这段Java类代码?Java新手寻求最佳实践建议

重构建议与代码优化方案

1. 数据结构优化

原数组交替存储网站名称和URL的设计易引发索引越界问题,也不符合面向对象思想。推荐两种更合理的实现方式:

  • HashMap映射:直接关联网站名称与URL,查找效率可达O(1)
  • 自定义实体类:封装网站名称和URL属性,更贴合OOP设计规范

2. 输入逻辑封装

将Scanner输入逻辑封装到独立类,解决输入获取的封装问题:

import java.util.Scanner;

public class InputHandler {
    public String getUserInput(String prompt) {
        Scanner scanner = new Scanner(System.in);
        System.out.println(prompt);
        String input = scanner.nextLine().trim();
        scanner.close();
        return input;
    }
}

3. 搜索逻辑抽离

把搜索逻辑单独抽成独立方法/类,避免main方法臃肿,同时解决原数组属性访问问题:

基于HashMap的搜索实现

import java.util.HashMap;
import java.util.Map;

public class WebsiteSearcher {
    // 初始化网站数据
    private static final Map<String, String> WEBSITE_DATA = new HashMap<>();
    static {
        WEBSITE_DATA.put("Google", "http://www.google.com");
        WEBSITE_DATA.put("Facebook", "http://www.facebook.com");
        WEBSITE_DATA.put("Ebay", "http://www.ebay.com");
        WEBSITE_DATA.put("Netflix", "http://www.netflix.com");
    }

    public void search(String query) {
        if (WEBSITE_DATA.containsKey(query)) {
            System.out.println("找到匹配结果:");
            System.out.println("网站名称:" + query);
            System.out.println("网站URL:" + WEBSITE_DATA.get(query));
        } else {
            System.out.println("未找到匹配的网站");
        }
    }
}

4. 完整重构代码

public class Main {
    public static void main(String[] args) {
        // 获取用户输入
        InputHandler inputHandler = new InputHandler();
        String userQuery = inputHandler.getUserInput("请输入要搜索的网站名称");

        // 执行搜索
        WebsiteSearcher searcher = new WebsiteSearcher();
        searcher.search(userQuery);
    }
}

5. 额外优化点

  • 大小写兼容:若需不区分大小写搜索,可将查询字符串与Map的key统一转为小写后对比
  • 空输入处理:添加输入为空的判断逻辑,避免无效搜索
  • 资源管理:Scanner使用后调用close()方法,避免资源泄漏

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 05:09:11