Android Builderモード

2088 ワード

1.パターン定義
Builderモードは、クライアントを複数のコンポーネント(またはコンポーネント)を含む複雑なオブジェクトの作成プロセスから分離し、同じ構築プロセスで異なる表現を作成できる複雑な作成モードです.
2.シーンの使用
  • 同じ方法で、異なる実行順序で、異なるイベント結果が生成された場合.
  • 複数の部品または部品は、いずれも1つのオブジェクトに組み立てることができるが、発生した運転結果は同じではない.
  • 製品クラスは非常に複雑で、または製品クラスの呼び出し順序が異なることで異なる効率が発生し、この場合はコンストラクタモードを使用するのが適切である.

  • 3.ビルダーのメリット
  • ばらばら結合:同じ構築アルゴリズムで表現的に全く異なる製品を構築することができ、製品構築と製品表現上の分離を実現することができる.
  • は製品の内部表示を簡単に変更することができる.
  • より良い多重性:構築アルゴリズムと具体的な製品実現の分離を実現する.
  • の良好なパッケージ性:コンストラクタモードを使用すると、クライアントが製品の内部構成の詳細を知る必要がなくなります.

  • 4.ビルダーの欠点
  • は余分なBuilderオブジェクトとDirectorオブジェクトを生成し、メモリを消費します.

  • 5.Androidソースでのモード実装
    Androidソースコードの中で、私たちが最もよく使うBuilderモードはAlertDialogです.複雑なAlertDialogオブジェクトを構築するためにBuilderを使用します.簡単な例は次のとおりです.
    //     AlertDialog  
        private void showDialog(Context context) {  
            AlertDialog.Builder builder = new AlertDialog.Builder(context);  
            builder.setIcon(R.drawable.icon);  
            builder.setTitle("Title");  
            builder.setMessage("Message");  
            builder.setPositiveButton("Button1",  
                    new DialogInterface.OnClickListener() {  
                        public void onClick(DialogInterface dialog, int whichButton) {  
                            setTitle("        Button1");  
                        }  
                    });  
            builder.setNeutralButton("Button2",  
                    new DialogInterface.OnClickListener() {  
                        public void onClick(DialogInterface dialog, int whichButton) {  
                            setTitle("        Button2");  
                        }  
                    });  
            builder.setNegativeButton("Button3",  
                    new DialogInterface.OnClickListener() {  
                        public void onClick(DialogInterface dialog, int whichButton) {  
                            setTitle("        Button3");  
                        }  
                    });  
            builder.create().show();  //   AlertDialog,     
        } 
    

    リファレンス
  • Builderモード