2012-11-03 18 views

Odpowiedz

19

Efektywna pozycja Java 1: Rozważ statyczne metody fabryczne zamiast konstruktorów.

Niektóre z zalet statycznych metod fabrycznych należą:

  • one automatycznie wnioskować parametrów typu pre-Java 7.
  • Pozwalają nam kontrolować wzorce dziedziczenia: możemy podklasy rodzajów odbioru w Guava nie pozwalając poza kodem podklasy je.
  • Pozwalają nam zwrócić dowolną podklasę pożądanego typu, co pozwala lepiej ukryć szczegóły implementacji.
+5

Zawartość książki jest również dostępna w Internecie (http://my.safaribooksonline.com/book/programming/java/9780137150021/creating-and-destroying-objects/ch02lev1sec1). – david

+1

Dodałbym przewagę, którą uważam za najważniejszą z punktu widzenia użytkownika końcowego: mają jaśniejszą nazwę. 'newHashMapWithCapacity (100)' jest dużo jaśniejsze niż 'nowy HashMap (100)'. –

+2

@JBNizet: Udostępniamy te metody dla implementacji kolekcji JDK, ale dla naszych rodzimych kolekcji zazwyczaj nie mamy bardziej szczegółowych nazw niż "create". (Nie jestem pewien, czy to była właściwa rozmowa, z dokładnie tego powodu, którą opisujesz.) –

Powiązane problemy