업데이트설계 원칙/저장소를 사용하는 패턴 데이터 변환, 및 수학 식
내가 소정 공식에 따라, IReportRepository로부터 데이터를 취득하여 데이터를 조작하고, 위험을 계산하는 RiskReport 타입을 갖는다.
RiskReport 유형이 정확한 형식으로 데이터를 가져와 데이터 조작을 수행하지 않아야한다는 인수가있을 수 있습니다. RiskReport는 수식에 따라 데이터를 계산하는 방법에만 관심을 가져야하며 IReportRepository는 RiskReport 클래스에서 요구하는 데이터 만 반환해야합니다.
IReportRepository와 RiskReport 사이에 새로운 클래스를 도입해야합니까? 현재 IReportRepository에서 반환 된 데이터는 위험을 계산하는 데 필요한 형식으로 조작되기 때문에
class RiskReport
{
private IReportRepository reportRepository;
public RiskReport(IReportRepository reportRepository)
{
this.reportRepository = reportRepository;
}
public decimal CalculateDataBasedOnFormula()
{
var result = from d in reportRepository.GetReportRelatedData()
group d by d.Id into dgp //potentially complex grouping
select new
{
TotalPage = dgp.Sum(x=>x.Pages) //potentially complex projection
};
decimal risk= //use the result variable to calculate data based on complex formula not shown here
return risk;
}
}
interface IReportRepository
{
IEnumerable<ReportRelatedData> GetReportRelatedData();
}
public class ReportRepository: IReportRepository
{
public IEnumerable<ReportRelatedData> GetReportRelatedData()
{
//return data from underlying data source
return new BindingList<ReportRelatedData>();
}
}
public class ReportRelatedData
{
public int Id { get; set; }
public int Name { get; set; }
public int Pages { get; set; }
//... more properties here
}
어떤 생각이라도 좋을 것입니다!
감사합니다. 신고 유형을 RiskReport 유형으로 변경했는데 귀하의 충고에 영향을 줍니까? – Pingpong