設計模式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();
}
}