Я новичок в Java, и у меня возникла следующая проблема:
Я создал несколько классов, которые все реализуют интерфейс "Parser". У меня есть JavaParser, PythonParser, CParser и, наконец, TextParser.
Я пытаюсь написать метод, чтобы он брал либо File, либо String (представляющий имя файла) и возвращал соответствующий анализатор с учетом расширения файла.
Вот некоторый псевдо-код того, что я в основном пытаюсь сделать:
public Parser getParser(String filename)
{
String extension = filename.substring(filename.lastIndexOf("."));
switch(extension)
{
case "py": return new PythonParser();
case "java": return new JavaParser();
case "c": return new CParser();
default: return new TextParser();
}
}
В целом, это правильный способ справиться с этой ситуацией? Кроме того, как мне следует учитывать тот факт, что Java не позволяет включать строки? Должен ли я использовать .hashcode () значение строк?
Я чувствую, что есть какой-то шаблон дизайна или что-то для этого, но это ускользает от меня. Это как ты это сделаешь?