Я хочу создать систему, которая позволяет пользователю выбирать из списка типов файлов, чтобы сохранить файл как. У меня есть класс с именем Word и интерфейс с именем SaveFileType. Каждый тип файла реализует SaveFileType, который имеет метод saveFile(). Идея заключается в том, что когда «программист» хочет добавить новый тип файла, ни один из кода в приложении не должен быть изменен.Как получить список всех реализованных классов в шаблоне стратегии?
Проблема, с которой я столкнулся класс Слово не имеет список всех доступных типов файлов, что мне нужно, чтобы отобразить пользователю.
Некоторые примеры кода ниже:
класс Слово:
public class Word {
SaveFileAs saveFileAs;
Document currentDocument;
public Word(Document currentDocument) {
this.currentDocument = currentDocument;
}
public void saveFile() {
// Print all available filetypes
// No actual file-saving logic is needed.
}
}
Word97 Класс:
public class Word97 implements SaveFileAs {
@Override
public void saveFile(Document currentDocument) {
// Do some Java wizardry here.
System.out.println("Document named '" + currentDocument.getTitle() + "' has been saved as filetype 'Word97' ");
}
}
Основной класс:
public class Main {
public static void main(String[] args) {
Document notes = new Document("Notes", "This is a note.");
Word wordProgram = new Word(notes);
// saveFile should print out a list of all possible filetypes.
wordProgram.saveFile();
}
}
@fabian спасибо, что ответили на мой вопрос. Там немного суровое, я совершенно новый для всего этого. Я изменил UML в соответствии с вашими отзывами. Является ли «FileType» лучшим именем? Если нет, у вас есть предложение? – Cake
Является ли это вопросом UML или реализацией, так как я вижу ответы только на реализацию? –