Java — избавьтесь от жесткого кодирования

#java #optimization #xml-parsing

#java #оптимизация #xml-синтаксический анализ

Вопрос:

Я новичок в Java, работаю над настольным приложением, тем самым понимая стандарты и концепции Java. У меня есть часть в приложении, где я выполняю синтаксический анализ XML, который также составляет большую часть приложения. Приложение анализирует огромный XML-файл и генерирует некоторые читаемые тексты в зависимости от узлов и значений. На данный момент все в логике синтаксического анализа жестко запрограммировано.

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

     public String getReadable() {
        action = action.getFirstChild();

        switch (action.getNodeName()) {
            case "Drive": {
                String name = XMLUtility.getChildFrom(action, 0).getTextContent();
                String model = XMLUtility.getChildFrom(action, 1).getTextContent();
                String speed = XMLUtility.getChildFrom(action, 2).getTextContent();
                return name   "is driving the "   model   " vehicle at a speed of "   speed   "mph";
            }

            case "Stop": {
                String model = action.getFirstChild().getTextContent();
                return model   " is now stopped";
            }
        }

        return "";
    }
  

В моем приложении есть сотни подобных функций в рамках механизма синтаксического анализа. Я хотел бы централизованно поддерживать все жестко закодированные материалы, что является более гибким способом поддержки кода.

Но, поскольку у меня нет никакого предыдущего опыта в Java, я ищу стандартный способ сделать это. Пожалуйста, порекомендуйте понятный подход для улучшения моего кода.

Комментарии:

1. Если ваш ввод представляет собой один XML-файл, а ваш вывод — один текстовый файл, я бы избавился от всего этого и просто попросил Java-код выполнить преобразование XSLT ввода XML с использованием таблицы стилей XSL. Вам больше никогда не придется прикасаться к коду. Просто отредактируйте таблицу стилей. Смотрите docs.oracle.com/javase/tutorial/jaxp/xslt/transformingXML.html