設計模式二、抽象工廠模式

設計模式part2

1.     抽象工廠模式

工廠方法模式有一個問題就是,類的創建依賴工廠類,也就是說,如果想要拓展程序,必須對工廠類進行修改,這違背了閉包原則,所以,從設計角度考慮,有一定的問題,如何解決?就用到抽象工廠模式,創建多個工廠類,這樣一旦需要增加新的功能,直接增加新的工廠類就可以了,不需要修改之前的代碼。因爲抽象工廠不太好理解,我們先看看圖,然後就和代碼,就比較容易理解


【java】Sender

publicinterface Sender {

    void send();

}


【java】SmsSender

publicclass SmsSender implements Sender{

 

    @Override

    publicvoid send() {

        System.out.println("sms sender");

    }

 

}


【java】MailSender

publicclass MailSender implements Sender{

 

    @Override

    publicvoid send() {

        System.out.println("mail sender");

    }

 

}


【java】Provider

publicinterface Provider {

    Sender produce();

}


【java】SmsSenderFactory

publicclass SmsSendFactory implements Provider{

 

    @Override

    public Sender produce() {

        returnnewSmsSender();

    }

 

}


【java】MailSenderFatory

publicclass MailSendFactory implements Provider{

 

    @Override

    public Sender produce() {

        returnnew MailSender();

    }

 

}


【java】MainTest

publicclass MainTest {

    publicstaticvoid main(String[] args) {

        Providerprovider = new SmsSendFactory();

        Sendersender = provider.produce();

       sender.send();

    }

}


 

發佈了13 篇原創文章 · 獲贊 9 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章