Sto riscrivendo il codice di qualcun altro al minuto, e mi sono imbattuto in due classi che si riferiscono direttamente l'un l'altro e chiamano metodi l'uno sull'altro. Mi piace così (esempio in C #):
class A {
B otherClass;
public A() {
this.otherClass = new B(this);
}
// Other methods here call methods on B
}
class B {
A otherClass;
public B(A otherClass) {
this.otherClass = otherClass;
}
// Other methods here call methods on A
}
Leggendo il suo codice e cercando di capirlo, devo spostarmi tra le due classi mentre si chiamano.
Queste classi non sono riutilizzabili in modo indipendente senza utilizzare l'altro. Sono consapevole che è considerata una buona pratica evitare i riferimenti circolari (e non è consentito tra i progetti C # in Visual Studio), ma questo, o potrebbe essere, nella tua esperienza è meglio che avere una singola - più grande - classe?