2009-09-02 18 views

risposta

14

Non è qualcosa di importante come in "obbligatorio". È una possibilità diversa, con forza e debolezza.

Vantaggi:

  • fase di compilazione di controllo: scrivendo in Java (invece di Xml) è molto user-friendly nell'IDE al giorno d'oggi. Niente più errori di battitura scoperto quando si avvia l'applicazione (compilazione incrementale), non c'è molto da ricordare (completamento) ...
  • localizzato con il codice (livello di classe): invece di dover aprire due file (java e xml) per ottenere la storia completa, con un file java con annotazioni, è possibile aprire solo un file. Questo è meno ripetitivo, più veloce nel lungo periodo.
  • Localizzato con il codice (metodo o livello di campo): poiché l'annotazione va su un metodo (o campo), non c'è non è necessario specificare il metodo a cui appartiene. Questa informazione ridondante non è data, che è più breve e sempre coerente (anche dopo un refactoring del codice, ad esempio). La manutenzione è molto più veloce.
  • Gli strumenti (javadoc, altri strumenti che utilizzano la riflessione) possono utilizzare le annotazioni per altri requisiti.
  • Le annotazioni sono più recenti di xml, il team ha utilizzato l'input che avevano ricevuto in quel momento per fornire valori predefiniti migliori. Xml ne ha alcuni, ma non può cambiare molto per ragioni di compatibilità. Spesso, con la tecnologia delle annotazioni, si scrive senza annotazioni e funziona. Immagina il risparmio di tempo, specialmente durante lo sviluppo.
+6

"niente più tipos" ... oh, l'ironia ... – skaffman

+0

@skaffman: risolto. Spero che il mio commento di revisione ti renda ancora più felice :-) –

+0

@Robert, grazie per la revisione, stavo per farlo da solo. – KLE

2

Non capisco tutto l'hype intorno annotazione e preferisco HBM per i seguenti motivi (Queste ragioni annullano gli svantaggi, come errori di battitura, la compilazione di controllo di tempo per me):

  1. separazione od preoccupazioni/Responsabilità singola: con HBM avete tutte le cose relative all'ORM in HBM. Logica di entità e dominio (indipendente dalla struttura della tabella) nella classe java. La tua classe DB e java può essere modificata in modo indipendente (solo la HBM deve essere aggiornata).
  2. Il tuo codice non è ingombro di annotazioni. Preferisco guardare solo la logica del dominio. Le annotazioni aggiungono molto rumore.

Se gli HBM sono ben organizzati (una classe HBM per java, denominazione coerente) diventa facile navigare tra i due. Il test di Junit e alcune discipline rimuoveranno la necessità di controllare il tempo di compilazione. Per quanto riguarda le impostazioni predefinite, penso che se l'ibernazione non funziona affatto annotare dovrebbe essere in grado di lavorare senza alcun XML (concettualmente - non so se questa è la realtà)