Devo dividere una singola classe in più classi per ridurre la dipendenza se possibile? [chiuso]

-1

Ad esempio, supponiamo di avere una classe del genere:

public class ABC{
    private Data data;
    public ABC(Data data){
        this.data=data;
    }

    public void ab(A a,B b){
        //some codes needs to use data,a,b
    }

    public void bc(B c,B c){
        //some codes needs to use data,b,c
    }
}

quale ABC dipende da A, B, C. Ma ho scoperto che posso dividerlo in 2 classi:

public class AB{
    private Data data;
    public AB(Data data){
        this.data=data;
    }

    public void ab(A a,B b){
        //some codes needs to use data,a,b
    }
}

public class BC{
    private Data data;
    public BC(Data data){
        this.data=data;
    }

    public void bc(B c,B c){
        //some codes needs to use data,b,c
    }
}

che AB dipende solo da A, B e BC dipende solo da B, C

Ma penso che questo approccio potrebbe avere uno svantaggio: potrebbe comportare un numero eccessivo di classi. Quindi la mia domanda è, dovrei dividere una singola classe in più classi fino a quando ogni classe dipende solo dal numero minimo di altre classi?

    
posta mmmaaa 07.03.2018 - 04:15
fonte

2 risposte

3

Dipende da cosa dovrebbe fare ABC .

Se hai una classe che esegue molte azioni non correlate, allora potrebbe avere senso dividerla in più classi (per evitare un God Class ). Tuttavia, se la funzionalità A , B e C sono tutti in qualche modo correlati, allora ha più senso tenerli insieme. Avere 3 metodi in una classe non è irragionevole.

    
risposta data 07.03.2018 - 05:28
fonte
1

Per prima cosa, tieni presente che tutti i consigli di programmazione che otterrai sono solo linee guida, non leggi sulla natura. È possibile, ea volte ha senso, avere una variabile globale, anche se non è vista come una buona pratica. Inoltre, alcuni di questi consigli hanno un impatto maggiore se li rompi, ea volte è un compromesso nel decidere cosa vale la pena di rompere e cosa vale la pena seguire.

Tornando alla tua domanda, è molto più pertinente considerare quale sia il ruolo di ABC. Certamente, mantenere un piccolo numero di dipendenze è una bella funzionalità e, se possibile, dovresti farlo. Tuttavia, se ABC si trova come un'entità unitaria , allora è accettabile sacrificare un po 'e accettare più dipendenze. D'altra parte, se ABC sta facendo troppe cose, dovresti prendere in considerazione la possibilità di dividerlo. Ma solo per rispettare il Principio di Responsabilità Unica, non per l'alto numero di dipendenze.

    
risposta data 07.03.2018 - 05:31
fonte

Leggi altre domande sui tag