建造者模式(Builder):工廠類模式提供的是創建單個類的模式,而建造者模式則是將各種產品集中起來進行管理。簡單起見,就拿之前的工廠方法模式進行修改一下就可以得到建造者模式。
##一、uml建模:

##二、代碼實現
~~~
/**
* 示例:建造者模式
*
* 與工廠模式的區別:工廠類模式提供的是創建單個類,而建造者模式則是將各種產品集中起來進行管理
*/
interface Sender {
public void send();
}
class EmailSender implements Sender {
@Override
public void send() {
System.out.println("使用電子郵箱發送...");
}
}
class SmsSender implements Sender {
@Override
public void send() {
System.out.println("使用短信發送...");
}
}
class Builder {
private List<Sender> list = new ArrayList<Sender>();
public List<Sender> getList() {
return list;
}
public void produceEmailSender(int count) {
for (int i = 0; i < count; i++) {
list.add(new EmailSender());
}
}
public void produceSmsSender(int count) {
for (int i = 0; i < count; i++) {
list.add(new SmsSender());
}
}
}
/**
* 客戶端測試類
*
* @author Leo
*/
public class Test {
public static void main(String[] args) {
Builder builder = new Builder();
builder.produceEmailSender(5);
builder.produceSmsSender(5);
/**
* 遍歷list中的元素
*/
List<Sender> list = builder.getList();
for (int i = 0; i < list.size(); i++) {
Sender sender = list.get(i);
System.out.println(sender);
sender.send();
}
}
}
~~~
##三、總結
建造者模式將很多功能集成到一個類里,這個類可以創造出比較復雜的東西。所以與工廠模式的區別就是:工廠模式關注的是創建單個產品,而建造者模式則關注創建復合對象,多個部分。
- 前言
- (一)策略模式建模與實現
- (二)觀察者模式建模與實現
- (三)裝飾者模式建模與實現
- (四)工廠方法模式建模與實現
- (五)抽象工廠模式建模與實現
- (六)單例模式建模與實現
- (七)命令模式建模與實現
- (八)適配器模式建模與實現
- (九)外觀模式建模與實現
- (十)模板方法模式建模與實現
- (十一)迭代器模式建模與實現
- (十二)組合模式建模與實現
- (十三)狀態模式建模與實現
- (十四)代理模式建模與實現
- (十五)建造者模式建模與實現
- (十六)原型模式建模與實現
- (十七)橋接模式建模與實現
- (十八)責任鏈模式建模與實現
- (十九)備忘錄模式建模與實現
- (二十)解釋器模式建模與實現
- (二十一)享元模式建模與實現
- (二十二)中介者模式建模與實現
- (二十三)訪問者模式建模與實現
- Java設計模式博客全目錄