Когда я пытаюсь разделить его на различные классы (чтобы получить главный класс с только несколько строк кода) Я получаю разного рода ошибок.
Рефакторинг классов (просто), чтобы уменьшить количество строк в классе, вероятно, плохая идея. Рефакторинг класса 100 строк для сокращения количества строк для каждого класса (откровенно) является результативным.
Класс класса ~ 100 достаточно мал, чтобы он не представлял проблемы читаемости на основе его длины. Метод линии длиной ~ 100, возможно, слишком длинный, но нет необходимости вводить методы в отдельные классы. Если что-либо, разделение этого на несколько классов затруднит чтение кода. (Основываясь на моем опыте ...)
Если вы собираетесь делать рефакторинг на этом коде, я бы рекомендовал вам разделить метод main
на более мелкие методы. Однако ключом к успешному рефакторингу является определение лучшего места, чтобы разделить вещи.
Например, я хотел бы сделать код из // Open the file
в reader.close()
отдельного метода, который принимает File
в качестве параметра, и возвращает HashSet
населенное чтение файла.
Идеально подходит для получения чистых методов с малыми API и минимальной связью с использованием общих переменных. И идеальный метод должен также выполнять одну задачу или группу связанных задач, а не часть задачи или захват (в значительной степени) независимых задач. Подобный метод, скорее всего, будет легко читаться и понимать, независимо от других методов. Это должно быть основной целью рефакторинга: сделать код в целом более понятным.
Пожалуйста, обратите внимание на создание [mcve] для нас. Нам действительно не нравится указывать ссылки на сайте для доступа к исходному коду; и вы отбрасываете весь исходный код здесь также не очень хорошая идея. – GhostCat