3
假設您有一個「DataPackage」的概念,它實際上是一個zip存檔。你需要實現一個系統來管理數據包,典型的場景是「導入新的」,「刪除已有的」等。有些原因不能將這些文件存儲在數據庫中。複雜的實體設計
問題是如何將「DataPackage」的概念劃分爲與其「數據方面」(DB相關內容)和「文件系統方面」(文件相關內容)分開工作的類?
我想如下:
// data package concept
interface DataPackage {
string GetFileName();
DataTime GetDateTimeImported();
}
// data package manager concept
interface DataPackageManager {
DataPackage[] GetAllDataPackages();
DataPackage ImportDataPackage(string sourceFileName);
void DeleteDataPackage(DataPackage dataPackage);
}
// data package database aspect
interface DataPackageData {
int GetId();
void SetFileName(string fileName);
string GetFileName();
}
// data package database manager
interface DataPackageDataManager {
DataPackageData[] GetAllDataPackagesDatas();
DataPackageData CreateDataPackageData();
void DeleteDataPackageData(DataPackageData data);
}
// also, similar 2 classes for DataPackage's filesystem aspect
// these would be responsible for copying files, removing files, etc
它是在正常的情況下設計的,我想解決的問題是兩個DataPackage
和DataPackageManager
「按簡單的,可能」實現?我目前已經在DataPackage
和DataPackageManager
中實施了所有這些內容,並且考慮我在這裏提出的是否比我擁有的更好。
你似乎已經做到了,所以我真的不知道問題出在哪裏。 –
如果只是關於C#那麼:int GetId() - > int Id {get; set;}。 GetId(),GetAllDataPackagesDatas()等 - 似乎是java風格的。只要有可能/適當,最好使用屬性替代方法。 –