2013-09-26 19 views
7

クラスのコンストラクタでこの.notation(AlertDialog.Builder)の意味を教えてください。クラス名のドット表記法とは何ですか?

public Dialog onCreateDialog(Bundle savedInstanceState) { 

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

} 

BuilderクラスがAlertDialogクラス内で定義されているということですか?またはBuilderはメソッドですが、その最初の文字は大文字であるため、私は混乱しています。

+1

Builderパターンを参照してください。 –

+3

[流暢](http://en.wikipedia.org/wiki/Fluent_interface)です。彼らは分かりやすくするために改行を挿入しました。 –

+0

メソッド連鎖の詳細は、[here](http://stackoverflow.com/questions/16976150/benefits-and-drawbacks-of-method-chaining-and-a-posposibility-to-replace-all-void)を参照してください。空白は大部分コンパイラに意味を持たないことを覚えておいてください。すべてを1行で想像してみてください –

答えて

12

の有用性についてthisを読むことをお勧めします。

ビルダーはAlertDialogの静的な内部クラスです。

Builderの各メソッドは、voidではなくBuilder(通常は「this」)を返します。

0

Builderは、AlertDialogクラスの静的内部クラスです。

は、私が使用してこのパターンはmethod chainingと呼ばれる入れ子になったクラス

0

Check out the documentation

Builderは、AlertDialogクラス内で定義された静的クラスです。あなたはそれをコンストラクタと呼んでいます。

2

これは、ビルダーは、それが

class AlertDialog { 

    static class Builder { 
.. 
0

これはBuilder design patternであり、AlertDialogクラスの静的な入れ子になったクラスであることを意味しています。あなたのコードで何

  • ビルダークラスのインスタンスを作成します - new AlertDialog.Builder(getActivity())
  • setTitlesetPositiveButton
  • を呼び出し、そのプロパティは、の特性とcreate()メソッドを呼び出すことにより、AlertDialogのインスタンスを作成し設定しますビルダー。

ビルダーパターンは、それがオブジェクトの作成に関連する問題を解決意味生成に関するデザインパターンです。 Javaのコンストラクターはオブジェクトの作成に使用され、オブジェクトの作成に必要なパラメーターを取ることができます。問題は、多くのパラメータを使用してオブジェクトを作成でき、そのうちのいくつかは必須であり、その他はオプションである場合があります。ビルダーデザインパターンは、コンストラクターで必要なパラメーターの数が通常4つ以上、最大で5つ以上の場合に使用してください。

関連する問題