Powiedzmy, że mam metodę, która zajmuję się utworzeniem encji X. Utworzenie tej encji wymaga zaangażowania (pobrania z bazy) kilkunastu innych encji. Metoda ma jakieś 100 linii, oczywiście wszystko co się da jest powydzielane do osobnych metod. W skrócie jedna wielka transakcja. Ta metoda, w zależności od przekazanego DTO, zachowuje się inaczej. W sumie są 4 ścieżki obsługiwane przez tę metodę, pewnie będą kolejne. Te ścieżki są bardzo podobne do siebie: gdyby każda ścieżka dostała własną metodę, to 80% kodu tych metod by się powtarzało, tylko że tego 80% kodu nie da się tak po prostu wydzielić. System to legacy, klasy na tysiące linii, model anemiczny. Co byście zrobili? Jakiś wzorzec projektowy na takie sytuacje?
Method(model)
{
if (x)
{
A();
}
if (y)
{
B();
}
C();
D();
// itd.
}