[英]java polymorphism creating object
我需要制作一個程序來處理文本,音頻和視頻文件,
我創建一個接口類和三個繼承它的類
public interface FileProcess{
public void process();
}
public class TextProcess implements FileProcess{
public void process(){System.out.print("Im Text file")};
}
public class VideoProcess implements FileProcess{
public void process(){System.out.print("Im Video file")};
}
public class AudioProcess implements FileProcess{
public void process(){System.out.print("Im Audio file")};
}
我運行測試以從發布請求中獲取文件(例如a.jpg或12.txt或aaa.pdf),我如何知道要運行哪個文件進程? 換句話說,我怎么知道應該創建哪個對象進程?
首先請注意您的方法不正確,缺少"
:
public class VideoProcess implements FileProcess{
public void process(){System.out.print("Im Video file")};
// ^ here!
}
您要么沒有ImageProcess
對象...
這是經典的工廠模式 。 為了實現正確的行為,在這種情況下,您可以創建一個通用對象並檢查擴展名以創建具體實例:
FileProcess process = null;
String filename = "a.jpg";
String extension = filename(0, filename(lastIndexOf(".");
並使用它來選擇創建哪種對象:
switch(extension) {
// catch multiple image extensions:
case "jpg":
case "png":
process = new VideoProcess();
break;
// catch text
case "txt":
process = new TextProcess();
break;
// catch multiple audio extensions:
case "wav":
case "mp3":
process = new AudioProcess();
break;
}
同樣,我強烈建議使用鏈接 (第3步 )中描述的Factory
類,該類返回正確的對象。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.