Metodi di supporto di una particolare classe [chiuso]

3

Diciamo che ho una classe che ha bisogno di alcuni metodi di supporto per fare il suo lavoro. Il numero di metodi di supporto inizia a crescere e anche la dimensione della classe inizia a crescere molto.

Come devo gestire questo problema?

  1. Devo generalizzare i metodi e creare una classe Helper statica anche se so che, per ora, solo una classe ne ha bisogno?

  2. Dovrei semplicemente far crescere le dimensioni della classe? (Non mi piace questa soluzione)

  3. Qualunque soluzione migliore?

posta Kevin Amorim 21.12.2015 - 04:19
fonte

1 risposta

5

Parlando in generale, sembra che la tua classe abbia assunto troppe responsabilità. È impossibile dire esattamente come senza conoscere i dettagli, ma il fatto che tu sia preoccupato della sua crescita è un odore / tell / canary-in-the-coalmine. È probabile che tu abbia semplicemente bisogno di una nuova classe.

Ricorda che "helper" sono problematici . Se ci pensi a lungo e duramente, probabilmente c'è un sostantivo con verbi correlati che funziona / con la tua classe originale. C'è probabilmente una cosa che può reggersi da sola. In caso contrario, potrebbe risultare che la tua classe originale è in realtà due o più classi. Se non è così, beh, allora non hai avuto la possibilità di pensarci abbastanza. Non esiste qualcosa che faccia una sola cosa, ma richiede molti, molti, molti metodi per farlo. Non può essere solo una cosa.

Anticipare le domande sull'ovvio HtmlHelper Dirò questo: avrebbe potuto chiamarsi meglio. Certo, i suoi metodi di estensione riguardano solo il rendering HTML, ma è davvero il miglior nome? Inoltre, probabilmente fa più del dovuto. C'è davvero una grande "cosa" che conosce il routing, il rendering di HTML, le modalità di convalida sul lato client, il CSS di convalida della convalida, ecc ...? Mmmmm ... suppongo che ci sia più di una persona nella squadra di MVC che non è pazza di nome e responsabilità. A volte, le soluzioni migliori non sono ovvie finché non abbiamo vissuto per un po 'con l'alternativa.

Ti ho parlato della volta che ho incontrato Rod Stewart? Potrebbe essere stato uno dei migliori giorni della mia vita. Invece, sono andato direttamente a casa e ho venduto tutto il suo vinile. Puzzava di salviette per neonati, bourbon e pipì di gatto. Non potevo capire una parola che ha detto. Ha spinto da me (il vincitore del premio radio) in modo che potesse colpire la mia ragazza. Non ne siamo sicuri, ma sembrava che continuasse a chiamarla "burro d'arachidi" mentre si mordeva la camicetta. Siamo partiti presto.

Il mio punto è che solo perché guardi qualcuno non significa che non colpire la tua ragazza occasionalmente commettere errori.

(Non fare l'equivalente di HtmlHelper .)

Relativo a SO: È la parola "Helper" in un nome di classe un odore di codice?

    
risposta data 21.12.2015 - 06:31
fonte

Leggi altre domande sui tag