2012-11-03 22 views

risposta

19

Elemento Java efficace 1: considerare i metodi di fabbrica statici anziché i costruttori.

Alcuni dei vantaggi dei metodi factory statici includono:

  • deducono automaticamente i parametri di tipo pre-Java 7.
  • Esse ci permettono di controllare modelli di eredità: siamo in grado di creare una sottoclasse tipi di raccolta all'interno Guava senza lasciare codice esterno sottoclasse loro.
  • Ci permettono di restituire una sottoclasse arbitraria del tipo desiderato, consentendoci di nascondere meglio i dettagli di implementazione.
+5

Il contenuto del libro è [disponibile online] (http://my.safaribooksonline.com/book/programming/java/9780137150021/creating-and-destroying-objects/ch02lev1sec1). – david

+1

Vorrei aggiungere il vantaggio che trovo il più importante dal punto di vista dell'utente finale: hanno un nome più chiaro. 'newHashMapWithCapacity (100)' è molto più chiaro di 'new HashMap (100)'. –

+2

@JBNizet: forniamo tali metodi per le implementazioni della raccolta JDK, ma per i nostri tipi di raccolta homegrown di solito non abbiamo nomi di fabbrica più dettagliati di 'create'. (Non sono sicuro che sia stata la chiamata giusta, ovviamente, per la ragione esatta che descrivi.) –

Problemi correlati