Android中怎么實現(xiàn)Builder模式,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學(xué)習下,希望你能有所收獲。
成都創(chuàng)新互聯(lián)網(wǎng)站建設(shè)提供從項目策劃、軟件開發(fā),軟件安全維護、網(wǎng)站優(yōu)化(SEO)、網(wǎng)站分析、效果評估等整套的建站服務(wù),主營業(yè)務(wù)為網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè),重慶App定制開發(fā)以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。成都創(chuàng)新互聯(lián)深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
Builder模式使用鏈式結(jié)構(gòu)創(chuàng)建復(fù)雜對象,將過程與結(jié)果分開,創(chuàng)建過程中可以自行組合。
使用場景
一個對象,不同組合,不同順序生成不同的結(jié)果
優(yōu)點:封裝性更規(guī)范,程序調(diào)用不用關(guān)系內(nèi)部細節(jié),注重結(jié)果即可
缺點:如果builder對象過多,會加大內(nèi)存消耗
public class TabInfoBean { private int count;//Tab的個數(shù) 必選 private int currentTab;//默認選中的tab 必選 private String[] tabText;//文字必選 private int normalResId;//可選 private int selectResId;//可選 private int normalTextColor;//可選 private int selectTextColor;//可選 private int normalTextSizeSp;//可選 private int selectTextSizeSp;//可選 private TabInfoBean(TabInfoBuilder builder) { this.tabText = builder.tabText; this.count = builder.count; this.currentTab = builder.currentTab; this.normalResId = builder.normalResId; this.selectResId = builder.selectResId; this.normalTextColor = builder.normalTextColor; this.selectTextColor = builder.selectTextColor; this.normalTextSizeSp = builder.normalTextSizeSp; this.selectTextSizeSp = builder.selectTextSizeSp; } public int getCount() { return count; } public void setCount(int count) { this.count = count; } public int getCurrentTab() { return currentTab; } public void setCurrentTab(int currentTab) { this.currentTab = currentTab; } public int getNormalResId() { return normalResId; } public void setNormalResId(int normalResId) { this.normalResId = normalResId; } public int getSelectResId() { return selectResId; } public void setSelectResId(int selectResId) { this.selectResId = selectResId; } public int getNormalTextColor() { return normalTextColor; } public void setNormalTextColor(int normalTextColor) { this.normalTextColor = normalTextColor; } public int getSelectTextColor() { return selectTextColor; } public void setSelectTextColor(int selectTextColor) { this.selectTextColor = selectTextColor; } public String[] getTabText() { return tabText; } public void setTabText(String[] tabText) { this.tabText = tabText; } public int getNormalTextSizeSp() { return normalTextSizeSp; } public void setNormalTextSizeSp(int normalTextSizeSp) { this.normalTextSizeSp = normalTextSizeSp; } public int getSelectTextSizeSp() { return selectTextSizeSp; } public void setSelectTextSizeSp(int selectTextSizeSp) { this.selectTextSizeSp = selectTextSizeSp; } public static class TabInfoBuilder { private int count; private int currentTab; private String[] tabText; private int normalResId; private int selectResId; private int normalTextColor; private int selectTextColor; private int normalTextSizeSp;//可選 private int selectTextSizeSp;//可選 public TabInfoBuilder(String[] tabText, int count, int currentTab) { this.tabText = tabText; this.count = count; this.currentTab = currentTab; } public TabInfoBuilder setNormalResId(int normalResId) { this.normalResId = normalResId; return this; } public TabInfoBuilder setSelectResId(int selectResId) { this.selectResId = selectResId; return this; } public TabInfoBuilder setNormalTextColor(int normalTextColor) { this.normalTextColor = normalTextColor; return this; } public TabInfoBuilder setSelectTextColor(int selectTextColor) { this.selectTextColor = selectTextColor; return this; } public TabInfoBuilder setNormalTextSizeSp(int size) { this.normalTextSizeSp = size; return this; } public TabInfoBuilder setSelectTextSizeSp(int size) { this.selectTextSizeSp = size; return this; } public TabInfoBean build() { return new TabInfoBean(this); } } }
調(diào)用方式
String[] name={"我","是","誰"}; TabInfoBean.TabInfoBuilder tabInfoBuilder=new TabInfoBean.TabInfoBuilder(name,5,0); /* TabInfoBean tabInfoBean=tabInfoBuilder .setNormalResId() .setSelectResId() .setNormalTextColor() .setSelectTextColor() .setNormalTextSizeSp() .setSelectTextSizeSp() .build();*/
看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進一步的了解或閱讀更多相關(guān)文章,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)的支持。