Come implementare un algoritmo di grandi dimensioni con passaggi per lo più non correlati mantenendo la coesione

1

Voglio implementare qualcosa di simile all'algoritmo descritto qui . Non so nemmeno se "algoritmo" è la parola giusta, dal momento che molti dei passaggi sono considerati algoritmi stessi. Quello che ho fatto in passato in situazioni come questa è incapsulare ogni passaggio in un metodo privato di una classe, e quindi fornire un metodo pubblico che chiama ciascuno dei passi in ordine. Tuttavia, ritengo che questo violi il principio di progettazione della coesione. L'unico modo in cui i passaggi si riferiscono l'uno all'altro è che condividono i dati e vengono chiamati uno dopo l'altro. Esiste un modello di progettazione che disaccoppia queste operazioni l'una dall'altra? O è il modo in cui ho descritto sopra l'unico modo per avvicinarsi a questo?

    
posta Gaston Gilbert 28.08.2016 - 08:43
fonte

1 risposta

2

Per i metodi più piccoli, la progettazione potrebbe essere ok. Per i metodi più grandi, se ognuno dei passaggi è un algoritmo, mettilo in una classe a se stante, in cui la classe ha un metodo pubblico. Ciò ti obbliga a rendere esplicito il flusso di dati e ti consente di scrivere test di unità individuali per ogni sub-algoritmo.

    
risposta data 28.08.2016 - 08:59
fonte

Leggi altre domande sui tag