2013-09-26 8 views
7

Jakie jest znaczenie tego .notation (AlertDialog.Builder) w konstruktorze klasy?Co to jest notacja kropkowa między nazwami klas i co to znaczy?

public Dialog onCreateDialog(Bundle savedInstanceState) { 

    return new AlertDialog.Builder(getActivity()) 
     .setTitle(R.string.date_picker_title) 
     .setPositiveButton(android.R.string.ok, null) 
     .create(); 

} 

Czy to oznacza, że ​​klasa Builder jest zdefiniowana w klasie AlertDialog? Lub Builder to metoda, ale jej pierwsza litera jest pisana wielką literą, więc jestem zdezorientowana.

+1

Należy zwrócić uwagę na wzór Konstruktora. –

+3

To jest [płynne] (http://en.wikipedia.org/wiki/Fluent_interface). Właśnie wstawili podział linii dla lepszej przejrzystości. –

+0

Zobacz [tutaj] (http://stackoverflow.com/questions/16976150/benefits-anddrawbacks-of-method-chaining-and-a-possibility-to-replace-all-void), aby uzyskać więcej informacji o łańcuchach metod i pamiętaj, że spacja w dużej mierze nie ma znaczenia dla kompilatora. Wyobraź sobie to wszystko na jednej linii –

Odpowiedz

12

Ten wzór jest zwanych method chaining.

Builder to statyczna wewnętrzna klasa AlertDialog.

Każda metoda w Builderze zwraca Builder (zwykle "ten") zamiast pustego.

0

Builder to statyczna klasa wewnętrzna klasy AlertDialog.

radzę czytać this temat wykorzystania i użyteczności zagnieżdżonych klas

2

Oznacza to, że Builder jest statyczna klasa zagnieżdżone w klasie AlertDialog, czyli

class AlertDialog { 

    static class Builder { 
.. 
0

To Builder design pattern.

Co zrobić w kodzie:

  • Tworzenie instancji klasy Builder - new AlertDialog.Builder(getActivity())
  • Ustaw jego właściwości wzywające setTitle i setPositiveButton
  • Utwórz instancję AlertDialog wywołując create() metodę z właściwościami budowniczy.

budowniczy jest kreacyjnych wzorzec projektowy to oznacza to rozwiązuje problem związany z obiektu stworzenie. Konstruktory w języku Java są używane do tworzenia obiektów i mogą przyjmować parametry wymagane do utworzenia obiektu. Problem zaczyna się, gdy obiekt można utworzyć z wieloma parametrami, niektóre z nich mogą być obowiązkowe, a inne mogą być opcjonalne. Konstruktor Wzorzec projektowy powinien być stosowany, gdy liczba parametrów wymaganych w konstruktorze jest większa niż możliwa do opanowania, zwykle 4 lub co najwyżej 5.