常用设计模式之抽象工厂模式
前面說過了工廠方法模式,工廠方法模式有一個問題就是,類的創建依賴工廠類,也就是說,如果想要拓展程序,必須
對工廠類進行修改,這違背了閉包原則,所以,從設計角度考慮,有一定的問題,如何解決?就用到抽象工廠模式,創
建多個工廠類,這樣一旦需要增加新的功能,直接增加新的工廠類就可以了,不需要修改之前的代碼。
例如:
//發送短信和郵件的接口
public interface Sender {
public void Send();
}
//發送郵件的實現類
public class MailSender implements Sender {
public void Send() {
System.out.println("發送郵件!");
}
}
//發送短信的實現類
public class SmsSender implements Sender {
public void Send() {
System.out.println("發送短信!");
}
}
//給工廠類一個接口
public interface Provider {
public Sender produce();
}
//兩個工廠的實現類
public class SendMailFactory implements Provider {
public Sender produce(){
return new MailSender();
}
}
public class SendSmsFactory implements Provider{
public Sender produce() {
return new SmsSender();
}
}
//測試類
public class Test {
public static void main(String[] args) {
Provider provider = new SendMailFactory();
Sender sender = provider.produce();
sender.Send();
}
}
注:這個模式的好處就是,
如果你現在想增加一個功能:發送及時信息,則只需做一個實現類實現Sender接口,
同時做一個工廠類,實現Provider接口就可以了,無需去改動現成的代碼。
這樣做,拓展性較好
轉載于:https://www.cnblogs.com/L-Z-P/p/7681870.html
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的常用设计模式之抽象工厂模式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CentOS7 使用tab建补全命令
- 下一篇: XML文件与实体类的互相转换