Şu anda (hepsi farklı biçimlendirme gerektiren) birçok farklı bölümlere sahip raporlar bir dizi üzerinde çalışıyorum ve kodumu yapılandırmak için en iyi yolu bulmaya çalışıyorum. Geçmişte yaptığımız benzer raporlar, rapor için tüm veri manipülasyonunu ve biçimlendirmesini yapan çok büyük (200+ satır) işlevlere sahip olur, böylece iş akışı şöyle görünür:
DataTable reportTable = new DataTable();
void RunReport()
{
reportTable = DataClass.getReportData();
largeReportProcessingFunction();
outputReportToUser();
}
Bu büyük işlevleri daha küçük parçalara ayırmak istiyorum, ancak korkarım ki onlarca tekrar kullanılamayan fonksiyona ve benzer bir "burada her şeyi yap" fonksiyonuna sahip olacağım. tüm bu daha küçük işlevleri çağırın, şöyle:
void largeReportProcessingFunction()
{
processSection1HeaderData();
calculateSection1HeaderAverages();
formatSection1HeaderDisplay();
processSection1SummaryTableData();
calculateSection1SummaryTableTotalRow();
formatSection1SummaryTableDisplay();
processSection1FooterData();
getSection1FooterSummaryTotals();
formatSection1FooterDisplay();
processSection2HeaderData();
calculateSection1HeaderAverages();
formatSection1HeaderDisplay();
calculateSection1HeaderAverages();
...
}
Veya bir adım daha ileri gidersek:
void largeReportProcessingFunction()
{
callAllSection1Functions();
callAllSection2Functions();
callAllSection3Functions();
...
}
Bu gerçekten daha iyi bir çözüm mü? Örgütsel bir bakış açısından, sanırım öyle (yani her şey başka türlü olabileceğinden çok daha organize), ancak kod okunabilirliğine kadar emin değilim (sadece diğer işlevleri çağıran fonksiyonların potansiyel olarak büyük zincirleri).
Düşünceler?