我想知道是否可以在类构造函数中要求某种类型的文件?
例如:
private class name(File location.txt)
我希望为每种类型的文件格式提供不同的构造函数。我可以写一个方法来检查文件并将其发送到适当的方法,但是想知道是否有可能跳过这个逻辑?
答案 0 :(得分:0)
我希望这个迷你工厂的样品对你有用:
public class Test {
private FileReaderFactory fileReaderFactory = new FileReaderFactory();
public static void main(String[] args) {
String fileTxt = "test1.txt";
String filePdf = "test2.pdf";
Test test = new Test();
FileTypeI filereaderTxt = test.fileReaderFactory.createFromExtension(fileTxt);
FileTypeI filereaderPdf = test.fileReaderFactory.createFromExtension(filePdf);
filereaderTxt.readFile();
filereaderPdf.readFile();
}
public interface FileTypeI {
void readFile();
}
class TextFileReader implements FileTypeI {
@Override
public void readFile() {
//Code to read Text File
}
}
class PDFFileReader implements FileTypeI {
@Override
public void readFile() {
//Code to read PDF File
}
}
class FileReaderFactory {
public FileTypeI createFromExtension (String filename) {
FileTypeI returningValue = null;
if (filename != null && filename.endsWith(".txt")) {
returningValue = new TextFileReader();
}
else if (filename != null && filename.endsWith(".pdf")) {
returningValue = new PDFFileReader();
}
return returningValue;
}
}
}