Java設計模式菜鳥系列(五)抽象工廠模式建模與實現

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


抽象工廠模式(Abstract Factory):抽象工廠--顧名思義,就是把工廠抽象出來,不同的工廠生產不同的產品。這樣做有個好處:一旦需要增加新的功能,直接增加新的工廠類就可以了,不需要修改之前的代碼。


一、uml建模圖



二、代碼實現

/**
 * 示例:抽象工廠--顧名思義,就是把工廠抽象出來,不同的工廠生產不同的產品
 * 
 * 優點:一旦需要增加新的功能,直接增加新的工廠類就可以了,不需要修改之前的代碼
 */
interface Sender {
	public void send();
}

class EmailSender implements Sender {

	@Override
	public void send() {
		System.out.println("this is a email...");
	}
}

class SmsSender implements Sender {

	@Override
	public void send() {
		System.out.println("this is a sms...");
	}

}

/**
 * 角色:抽象工廠
 */
interface AbstractFactory {
	public Sender produce();
}

/**
 * 郵件工廠
 */
class EmailSendFactory implements AbstractFactory {

	@Override
	public Sender produce() {
		return new EmailSender();
	}
}

/**
 * 短信工廠
 */
class SmsSendFactory implements AbstractFactory {

	@Override
	public Sender produce() {
		return new SmsSender();
	}
}

/**
 * 客戶端測試類
 * 
 * @author Leo
 */
public class Test {
	public static void main(String[] args) {
		/**
		 * 創建工廠
		 */
		AbstractFactory factory = new SmsSendFactory();
		/**
		 * 生產產品
		 */
		Sender sender = factory.produce();
		/**
		 * 執行業務邏輯
		 */
		sender.send();
	}

}

三、總結

如果你現在想增加一個功能:給特別關注的好友發信息,則只需做一個實現類,實現Sender接口,同時做一個工廠類,實現AbstractFactory接口,就可以了,無需修改現有代碼。這樣做拓展性較好!


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