All'insaputa di me mentre lo stavo costruendo, ho costruito un'architettura a "piramide". Non me ne sono reso conto fino a quando non l'ho esposto nel mio nuovo Visual Studio 2013 Layer Diagrammer. Ogni livello dipende dal livello sottostante, e tutti gli altri livelli sottostanti .
Sospetto che questa sia la causa di alcuni dei miei mali. Ogni livello superiore viola l'SRP, perché ha più di una ragione per cambiare, giusto? Ha più contratti con più livelli di base. Se uno qualsiasi di questi livelli cambia, il componente deve cambiare.
La mia domanda è, come posso refactoring questo? Sono 19.000 linee di codice, ma posso refactoring dato abbastanza tempo finché ho una solida strategia di refactoring.
E come nota a margine, invito anche le tue speculazioni sul motivo per cui ho sentito il bisogno di crearlo in questo modo. È un anti-modello? Ha un nome?
Modifica
Hobattezzatoquestoanti-pattern"The Garlic Architecture"