builder模式也叫建造者模式或者生成器模式,是由gof提出的23種設計模式中的一種。builder模式是一種物件建立型模式之一,用來隱藏復合物件的建立過程,它把復合物件的建立過程加以抽象,通過子類繼承和過載的方式,動
態地建立具有復合屬性的物件。
//具體的構建物件
/* * 房子
*/public
class house
public
void
setfloor(string floor)
public string getwall()
public
void
setwall(string wall)
public string gethousetop()
public
void
sethousetop(string housetop)
}
/*
* 工程隊
*/public
inte***ce housebuilder
public
class housedirector
}
public
class
gongyubuilder
implements
housebuilder
public
void
makefloor()
public
void
makehousetop()
public
void
makewall()
}
/*
* 平房工程隊
*/public
class
pingfangbuilder
implements
housebuilder
public
void
makehousetop()
public
void
makewall()
public house gethouse()
}
public
class mainclass
}
/**
* * created by zero on 2016-08-19
* * 通過建造者模式構建乙個popupwindow
* */
public
class
commonpopup
extends
popupwindow
public builder settitle(string title)
public builder setcontent(string content)
public builder setlistenleft(ilistenleftcallback ilistenleft)
public builder setlefttext(string lefttext)
public builder setlistenright(ilistenrightcallback ilistenright)
public builder setrighttext(string righttext)
public commonpopup build()
}public
commonpopup(builder builder)
private popupwindow popupwindow;
private view popview;
private textview txt_title;
private textview txt_info;
private
void
initpopup()else
txt_info = (textview) popview.findviewbyid(r.id.txt_info);
if(textutils.isempty(content))else
button btn_right = (button) popview.findviewbyid(r.id.btn_right);
if(!textutils.isempty(righttext))
}});
}else
button btn_left = (button) popview.findviewbyid(r.id.btn_left);
if(!textutils.isempty(lefttext))
}});
}else
}public
void
showpopup()
popupwindow.showatlocation(popview, 0, 0, 0);}}
//介面類
public
inte***ce ilistenleftcallback
public
inte***ce ilistenrightcallback
activity
/**
* created by zero on 2016-08-19
*/public
class
builderactivity
extends
activity
// 不想寫xml,就直接動態編碼了
private view drawview()
}).build().showpopup();
}});
button btn2 = new button(this);
btn2.setlayoutparams(btn_params);
btn2.settext("click2");
btn2.setonclicklistener(new onclicklistener()
}).setrighttext("確定")
.setlistenright(new ilistenrightcallback()
}).build().showpopup();
}});
ll_layout.addview(btn1);
ll_layout.addview(btn2);
return ll_layout;}}
執行 效果圖:
java設計模式之建造者模式
概念 建造者模式是指把乙個複雜物件的構建和表示分離,就像建房子一樣,每乙個房子的建造流程都是相同的,但是卻會有很多形狀不一,樣式不同的房子,這裡的房子實際上就是房子這個物件的表示,建造的流程就是房子物件的構建 建造者模式的構成部分 1.builder介面 builder介面設計要表示物件的構建流程,...
JAVA設計模式之建造者模式
分離物件子元件,子元件單獨構造 由builder來負責 和裝配模式 由director負責 從而可以構造出複雜物件。這個模式適用於某個物件構造特別複雜。由於實現了構建和裝配的解耦。不同的構建器,相同的裝配,也可以生產不同的物件的物件 相同的構建器和不同的裝配順序也可以構造不同的物件,這樣實現了構建演...
Java設計模式之建造者模式
介紹 提起builder,我們第一時間想到的就是建築物,高樓大廈。在建造高樓大廈的時候,需要先打地基,搭建建築框架,然後自下而上地一層一層蓋起來。通常,在建造這種具有複雜結構的物體時,很難一氣呵成。我們需要首先建造組成這個物體的各個部分,然後分階段將它們組裝起來。而建造者模式 builder pat...