設計模式之建造者(構造器)模式
阿新 • • 發佈:2018-12-27
構造器模式也可以稱之為建造者模式,構造器模式其實在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 classBuilder { 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()); } }由於時間關係.......