Androidデザインモード-Builder

1566 ワード

public class Person {
 private String name;
 private int age;
 private int height;
 private int width;
 private Person(Builder builder) {
  this.name = builder.name;
  this.age = builder.age;
  this.height = builder.height;
  this.width = builder.width;
 }
 public static class Builder {
  private String name;
  private int age;
  private int height;
  private int width;
  public Builder setName(String name) {
   this.name = name;
   return this;
  }
  public Builder setAge(int age) {
   this.age = age;
   return this;
  }
  public Builder setHeight(int height) {
   this.height = height;
   return this;
  }
  public Builder setWidth(int width) {
   this.width = width;
   return this;
  }
  public Person show() {
   Person person = new Person(this);
   return person;
  }
 }
}

 
テスト
public class MainActivity extends Activity {
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  Person mPerson = new Person.Builder()
    .setName(" ")
    .setAge(12)
    .setWidth(13)
    .setHeight(50)
    .show();
 }
}

    
Android AlerDialogはBuilder設計モデルです.
new AlertDialog.Builder(...).setTitle("")... ...show();
 

長所と短所


メリット:
1、良好なパッケージ性、建造者モードを使用して、クライアントに製品内部の構成の詳細を知る必要がない;
2、建造者は独立して、拡張しやすい.
3、オブジェクトの作成中にシステム内の他のオブジェクトに使用されます.これらのオブジェクトは製品オブジェクトの作成中に入手しにくいです.
欠点:
1、余分なBuilderオブジェクトとDirectorオブジェクトが発生し、メモリを消費する.
2、オブジェクトの構築過程の暴露.