2013-09-26 4 views
7

Qual è il significato di questo .notation (AlertDialog.Builder) in un costruttore di classi?Qual è la notazione a punti tra i nomi di classe e cosa significa?

public Dialog onCreateDialog(Bundle savedInstanceState) { 

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

} 

Significa che la classe Builder è definita all'interno della classe AlertDialog? Or Builder è un metodo, ma la sua prima lettera è maiuscola, quindi sono confuso.

+1

Cercare il modello di generatore. –

+3

Questo è [fluent] (http://en.wikipedia.org/wiki/Fluent_interface). Hanno appena inserito interruzioni di riga per chiarezza. –

+0

Vedere [qui] (http://stackoverflow.com/questions/16976150/benefits-and-drawback-of-method-chaining-and-a-possibility-to-replace-all-void) per ulteriori informazioni sul concatenamento del metodo e ricorda che lo spazio bianco non ha alcun significato per il compilatore. Immagina tutto su una riga –

risposta

12

Questo modello è chiamato method chaining.

Builder è una classe interna statica di AlertDialog.

Ogni metodo in Generatore restituisce un Generatore (di solito "questo") anziché vuoto.

0

Builder è una classe interna statica della classe AlertDialog.

vi consiglio di leggere this circa l'uso e l'utilità delle classi nidificate

0

Check out the documentation!

Builder è una classe statica definita all'interno della classe AlertDialog. Stai chiamando il suo costruttore.

2

Ciò significa che Builder è una classe innestata statica in classe AlertDialog, cioè

class AlertDialog { 

    static class Builder { 
.. 
0

Questo è Builder design pattern.

Quello che fai nel codice:

  • Creare un'istanza della classe Builder - new AlertDialog.Builder(getActivity())
  • impostarne le proprietà di chiamata setTitle e setPositiveButton
  • Crea istanza di AlertDialog chiamando create() il metodo con le proprietà del il costruttore.

Builder modello è un design pattern creazionale significa che risolve un problema correlato ad oggetto creazione. I costruttori in Java vengono utilizzati per creare oggetti e possono utilizzare i parametri necessari per creare oggetti. Il problema inizia quando un oggetto può essere creato con molti parametri, alcuni potrebbero essere obbligatori e altri potrebbero essere facoltativi. Generatore Il modello di progettazione deve essere utilizzato quando il numero di parametri richiesti nel costruttore è più che gestibile di solito 4 o al massimo 5.

Problemi correlati