Che cosa significa zio Bob con "nomi di frasi nominali"?

11

Sto leggendo Pulisci codice dallo zio Bob. Poiché non sono un madrelingua inglese, non ho potuto capire la seguente affermazione:

Classes and objects should have noun or noun phrase names like Customer, WikiPage, Account, and AddressParser. Avoid words like Manager, Processor, Data, or Info in the name of a class. A class name should not be a verb.

Come noto, nessuno dei Manager , Processor , Data e Info è un verbo, non è vero? Qual è il punto che vuole sottolineare?

    
posta mmdemirbas 09.05.2013 - 21:04
fonte

2 risposte

20

I tre punti sono separati:

  • I nomi delle classi dovrebbero essere nomi o frasi nominative . Ciò significa che il nome della classe dovrebbe essere qualcosa che sarebbe oggetto di un verbo. Nel caso della progettazione orientata agli oggetti, i metodi sarebbero i verbi che avvengono sulla cosa di cui la classe è una rappresentazione.

  • Alcune parole dovrebbero essere evitate. Manager indica una possibile classe di Dio . Info e Data potrebbero indicare un contenitore di dati fittizio. Parole come questa potrebbero indicare una cattiva modellazione dello spazio del problema.

  • I verbi non dovrebbero mai essere nomi di classi. Vedi il primo punto: le classi modellano le cose, i metodi modellano le azioni.

risposta data 09.05.2013 - 21:14
fonte
5

Sta cercando di fare una distinzione tra cose (nomi) e azioni (verbi). Nella progettazione orientata agli oggetti convenzionale, pensiamo alle classi come alle cose e ai loro metodi come alle azioni che queste cose possono eseguire. gestire è prendersi cura di o coordinare, mentre manager è una persona o cosa che gestisce.

I libri introduttivi di solito li riducono ai termini più semplici e più ovvi possibili, come una classe chiamata Cane , con metodi Abbaio e Morso . Nelle classi del mondo reale, la distinzione è spesso un po 'più sottile, ma è ancora lì. Credo che il punto che lo zio Bob sta facendo, tuttavia, è che mentre manager è un sostantivo, ma pone molta attenzione su ciò che fa il manager, e non su quello che è: è troppo vago di una parola per descrivere esattamente cosa viene gestito o come.

    
risposta data 09.05.2013 - 21:12
fonte

Leggi altre domande sui tag