Quale di questi sembra più pulito?

1

Ho scritto un piccolo metodo in un programma per fare una cosa che il mio metodo assomiglia a questo:

public static void removeExpiredAssignments(Module module){
    module.removeExpiredAssignments();
}

Quindi il metodo è chiamato come:

removeExpiredAssignments(module);

Quando l'operazione desiderata potrebbe essere fatta dicendo:

module.removeExpiredAssignments(); 

Che è facile da capire dal punto di vista del codice?

    
posta Dean 30.03.2012 - 03:18
fonte

3 risposte

2

Dipende da cosa stai cercando di fare. Chiamare il metodo sul modulo implica implicitamente che il modulo è richiesto e direttamente influenzato dall'azione. Chiamare il metodo che accetta un modulo implica che il modulo possa o meno essere necessario per eseguire l'azione e che possa o meno influire direttamente sullo stato del modulo.

    
risposta data 30.03.2012 - 03:42
fonte
2

Questo si collega alla risposta di Jeremy, ma direi che è una questione sulla cui responsabilità è di eseguire il metodo. È il module in cui la conoscenza di come eseguire ciò appartiene? Se è così, dovrebbe essere il modulo che esegue il metodo su se stesso. Se la conoscenza di come farlo appartiene altrove, il metodo dovrebbe essere su quell'altro oggetto / classe e prendere il modulo come argomento.

    
risposta data 30.03.2012 - 06:14
fonte
1

Java mi sembra ancora estraneo, ma mi aspetterei di trovare la sintassi module.functionCall(); ; è davvero "la via java". Sono cresciuto in C (quasi 20 anni fa) e la dichiarazione di funzione mi sembra antiquata persino a me, quindi questo è qualcosa che dico.

    
risposta data 30.03.2012 - 10:40
fonte

Leggi altre domande sui tag