Java設計模式菜鳥系列(十五)建造者模式建模與實現

轉載請註明出處:http://blog.csdn.net/lhy_ycu/article/details/39863125


建造者模式(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();
		}
	}
}

三、總結

建造者模式將很多功能集成到一個類裏,這個類可以創造出比較複雜的東西。所以與工廠模式的區別就是:工廠模式關注的是創建單個產品,而建造者模式則關注創建複合對象,多個部分。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章