class Result
{
public string Data { get; set; }
}
interface IRepository
{
Result[] Search(string data);
}
我有一個相當通用的接口,搜索「某些東西」並返回Result
。接口可以由幾個類來實現,每個類都返回它們自己的Result和它們自己的唯一元數據。例如,我可以有一個DiskRepository
對於搜索數據在磁盤上:接口返回派生類型
class DiskResult : Result
{
public int FileSize { get; set; }
public DateTime LastModifiedDate { get; set; }
}
class DiskRepository : IRepository
{
public Result[] Search(string data)
{
// ...
DiskResult[] results = GetDataFromSomewhere();
return results;
}
}
的DiskResult
包含的結果是特定於DiskRespository
額外信息。如果我創建了另一個實現IRepository
的類,那麼該特定實現可能有自己的一組元數據,這些元數據對於該類是唯一的。
最後,我想我的搜索控制器看起來像這樣:
我可以很容易地展示在我Result
類Data
財產,但有一個很好的模式,以顯示元每個課程從Result
派生?我可以有一大堆if
語句來檢查這個類是否屬於某種類型,但是感覺有點笨拙。有沒有更好的方法去做我想要達到的目標?
這違反了SRP。演示文稿應該與域分開。 – Eranga 2012-02-27 04:04:07