2016-12-19 5 views
0

Я читаю несколько файлов, используя (BufferedReader и Scanner несколько раз в моем коде) .etc Проблема в том, что мой код существует в одном классе (основной класс).BufferedReader и Scanner в разных классах

, когда я пытаюсь разбить его на разные классы (чтобы получить основные кланы только с несколькими строками кода), я получаю разные ошибки.

я попытался например

public class ReadFile { 
    public static BufferedReader in (InputStream in){ 
    //The same code here 
    //URL book = new...... 
    return new BufferedReader(inStreamReader(in)); 
} 

} 
+1

Пожалуйста, обратите внимание на создание [mcve] для нас. Нам действительно не нравится указывать ссылки на сайте для доступа к исходному коду; и вы отбрасываете весь исходный код здесь также не очень хорошая идея. – GhostCat

ответ

1

Когда я пытаюсь разделить его на различные классы (чтобы получить главный класс с только несколько строк кода) Я получаю разного рода ошибок.

Рефакторинг классов (просто), чтобы уменьшить количество строк в классе, вероятно, плохая идея. Рефакторинг класса 100 строк для сокращения количества строк для каждого класса (откровенно) является результативным.

Класс класса ~ 100 достаточно мал, чтобы он не представлял проблемы читаемости на основе его длины. Метод линии длиной ~ 100, возможно, слишком длинный, но нет необходимости вводить методы в отдельные классы. Если что-либо, разделение этого на несколько классов затруднит чтение кода. (Основываясь на моем опыте ...)

Если вы собираетесь делать рефакторинг на этом коде, я бы рекомендовал вам разделить метод main на более мелкие методы. Однако ключом к успешному рефакторингу является определение лучшего места, чтобы разделить вещи.

Например, я хотел бы сделать код из // Open the file в reader.close() отдельного метода, который принимает File в качестве параметра, и возвращает HashSet населенное чтение файла.

Идеально подходит для получения чистых методов с малыми API и минимальной связью с использованием общих переменных. И идеальный метод должен также выполнять одну задачу или группу связанных задач, а не часть задачи или захват (в значительной степени) независимых задач. Подобный метод, скорее всего, будет легко читаться и понимать, независимо от других методов. Это должно быть основной целью рефакторинга: сделать код в целом более понятным.