Nomi per classi generiche - come evitare di nominarli solo "oggetto"? Utilizzare i sinonimi?

1

Durante la programmazione, spesso finisco per nominare qualche classe generica (penso a una classe base astratta per cose che gestisci nel tuo progetto) qualcosa come FooObject , FooComponent o FooItem (dove Foo è un'abbreviazione del nome del progetto). Il problema è che questi nomi sono usati così spesso, diventano privi di significato - voglio dire, quando parlo di un "oggetto", nessuno sa se intendo "una sottoclasse di FooObject " o un oggetto ordinario .

Penso che una buona lista di sinonimi per "oggetto", "componente", "callback", "gestore", "azione" e così via aiuterebbe, perché potremmo ridefinire questi mondi su base pro-progetto . Potresti persino inventare parole totalmente prive di senso e definire il tuo significato nella documentazione. Penso che sarebbe più chiaro che nominare roba "oggetti".

Ecco cosa intendo per "nonsense" (tratto da Alice nel Paese delle Meraviglie):

Twas brillig, and the slithy toves

Did gyre and gimble in the wabe:

All mimsy were the borogoves,

And the mome raths outgrabe.

Forse potresti avere delle belle parole che usi in questi casi?

Come gestisci situazioni simili nei tuoi progetti?

[Correlato: Come evitare nomi generici per classi astratte ? ]

    
posta mik01aj 05.02.2014 - 11:30
fonte

1 risposta

5

Sull'argomento, Kent Beck ha detto:

"[...] The names should be short and punchy. However, to make the names precise sometimes seems to require several words. A way out of this dilemma is picking a strong metaphor for the computation. With a metaphor in mind, even single words bring with them a rich web of associations, connections, and implications. For example, in the HotDraw drawing framework, my first name for an object in a drawing was DrawingObject. Ward Cunningham came along with the typography metaphor: a drawing is like a printed, laid-out page. Graphical items on a page are figures, so the class became Figure. In the context of the metaphor, Figure is simultaneously shorter, richer, and more precise than DrawingObject."

(Dalla risposta di Marcio Aguiar in link )

    
risposta data 05.02.2014 - 12:04
fonte