2010-11-10 91 views
0

我有一個工廠類,我覺得需要重新分解,採取下面的例子:我鬆散以下領域驅動設計原則,因此這FileFactory類是處理外部依賴的工廠

public class FileFactory 
{ 
    public static FileType Create(string fileName) 
    { 
     if(IsImageFile(fileName))  
     { 
      return new ImageFileType(); 
     } 
     else if(IsDocumentFile(fileName)) 
     { 
      return new DocumentFileType(); 
     } 
     ... 
    } 

    private static bool IsImageFile(string fileName) 
    { 
     string imageFileTypes[] = string[] {".jpg", ".gif", ".png"}; //How to avoid this line of code? 
     return imageFileTypes.Contains(fileName); 
    } 
} 

一個域對象。工廠類是否應該訪問存儲庫/數據庫以獲取文件類型?

我應該如何處理這種情況下的依賴關係?

回答

0

一個新的,未知的圖像文件類型是不太可能的。硬編碼這是很好的。

如果您確實有意將該文件列表保留爲外部依賴項,請將文件類型列表傳遞給FileFactory構造函數,並將Create()作爲實例方法而不是靜態方法。這將讓你可以測試和固體。