当我使用repository pattern作为我的数据处理类时,我发现自己处于一个场景中,我似乎在重复一些代码块。我倾向于只使用实例方法,并且似乎不能引用同一个类中的其他实例方法,但感觉静态方法可以解决这个问题,所以我只是想知道是否有任何缺点或需要注意的事情当在存储库类中使用静态方法时,或者可能是否有更好的解决方案?
在我看来,这是一个完全合乎逻辑的事情,但我之前没有看过它的例子。
private DocumentEntities db = new DocumentEntities();
int ExampleRepository.GetDocumentScore(Document doc)
{
return GetDocScore(doc);
}
int ExampleRepository.GetOverallScore()
{
int overallScore = 0;
foreach(Document doc in db.Documents)
{
overallScore += GetDocScore(doc);
}
return overallScore;
}
private static int GetDocScore(Document doc)
{
int docScore = 0;
// some logic to work out a documents score from it's results
return docScore;
}