1. 程式人生 > >設計模式之建造者(構造器)模式

設計模式之建造者(構造器)模式

構造器模式也可以稱之為建造者模式,構造器模式其實在android中使用的比較多,當然在寫一些框架或封裝一些模組的時候也經常會用到構造器模式。

那麼構造器模式適用的場景總結:適用於給定一個基礎模板,可以配置多個引數,從而得到不同的結果。也就是說能夠在此基礎模板的基礎上配置自己想要顯示的模板樣式。

看程式碼示例:

/**
 * builder模式
 */
public class User {

   private final String mFirstName; // 必選
private final String mLastName; // 必選
private final String mSex; // 可選
private final int mAge; // 可選 private final String mPhone; // 可選 private User(Builder userBuilder) { this.mFirstName = userBuilder.mFirstName; this.mLastName = userBuilder.mLastName; this.mSex = userBuilder.mSex; this.mAge = userBuilder.mAge; this.mPhone = userBuilder.mPhone;
} public String getmFirstName() { return mFirstName; } public String getmLastName() { return mLastName; } public String getmSex() { return mSex; } public int getmAge() { return mAge; } public String getmPhone() { return mPhone; } public static class
Builder { private final String mFirstName; // 必選 private final String mLastName; // 必選 private String mSex; // 可選 private int mAge; // 可選 private String mPhone; // 可選 public Builder(String mFirstName, String mLastName) { this.mFirstName = mFirstName; this.mLastName = mLastName; } public Builder sex(String sex) { this.mSex = sex; return this; } public Builder age(int age) { this.mAge = age; return this; } public Builder phone(String phone) { this.mPhone = phone; return this; } public User build() { return new User(this); } } }
public class Main {

   /*
    * builder建造者模式(變種的builder模式)
    */
public static void main(String[] args) {

      User user = new User.Builder("明天", "後天")
            .age(22).sex("無")
            .phone("123456789")
            .build();
System.out.println(user.getmAge());
}

}
由於時間關係.......