我很好奇什麼纔是在以下實現中使用的最佳設計模式:我創建了一個小型應用程序,用於從網站下載圖像並將其設置爲我的背景。如何從業務邏輯中分離遠程數據訪問(通過http)邏輯?
我想與網站進行接口以下載XML Background.xml
文件,並下載另一個文件(Background.bmp
),該文件位於此遠程服務器上。該文件是位圖,XML是關於位圖的元數據。我下載文件後,我想將其設置爲我的背景。我想從背景設置代碼中分離出文件下載代碼,但我不確定我會使用哪種設計模式。
這似乎是一個典型的演示/數據/業務應用程序,其中Form是表示層,背景設置器/ XML分析器是業務層,下載器是數據層。但我不確定哪種設計模式可用於實際數據訪問,因爲它來自網站而不是數據庫(所以DAO可能不適合這樣做)。我也購買了Wikipedia的設計模式,但沒有什麼看起來不錯。這是我可以使用MVC的東西嗎?
數據層
public class DataLayer {
public void DownloadFile() {
// download the file from http
}
public void GetXmlMetaData() { }
}
業務層
public class BusinessLayer {
private static BusinessLayer m_instance = new BusinessLayer();
public static Instance BusinessLayer { get { return m_instance; }
private BusinessLayer() { }
public void SetNewWallpaper() {
// download the file from data layer
// set it as the background
}
public String GetWallpaperInfo() { return String.Empty; }
}
表示層
public class PresentationLayer {
public void HandleButtonClick(Object sender, EventArgs e) {
BusinessLayer.Instance.SetNewWallpaper();
}
}
何我會將數據訪問部分與背景設置邏輯分開嗎?