抽象工廠模式(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接口,就可以了,無需修改現有代碼。這樣做拓展性較好!
- 前言
- (一)策略模式建模與實現
- (二)觀察者模式建模與實現
- (三)裝飾者模式建模與實現
- (四)工廠方法模式建模與實現
- (五)抽象工廠模式建模與實現
- (六)單例模式建模與實現
- (七)命令模式建模與實現
- (八)適配器模式建模與實現
- (九)外觀模式建模與實現
- (十)模板方法模式建模與實現
- (十一)迭代器模式建模與實現
- (十二)組合模式建模與實現
- (十三)狀態模式建模與實現
- (十四)代理模式建模與實現
- (十五)建造者模式建模與實現
- (十六)原型模式建模與實現
- (十七)橋接模式建模與實現
- (十八)責任鏈模式建模與實現
- (十九)備忘錄模式建模與實現
- (二十)解釋器模式建模與實現
- (二十一)享元模式建模與實現
- (二十二)中介者模式建模與實現
- (二十三)訪問者模式建模與實現
- Java設計模式博客全目錄