【发布时间】:2016-12-14 13:50:07
【问题描述】:
我想设计一个系统,允许用户从文件类型列表中选择将文件另存为。我有一个名为 Word 的类和一个名为 SaveFileType 的接口。每个文件类型都实现了具有 saveFile() 方法的 SaveFileType。这个想法是,当“程序员”想要添加新的文件类型时,应用程序中的任何代码都不必更改。
我面临的问题是 Word 类没有我需要向用户显示的所有可用文件类型的列表。
下面的一些示例代码:
词类:
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' 是一个更好的名字吗?如果没有,您有什么建议吗?
-
这是一个 UML 还是一个实现问题,因为我只看到实现答案?
标签: java uml strategy-pattern