抽象工廠模式

抽象工廠模式

由于普通工廠模式,較多的依賴于工廠類,如果增加功能的話改動(dòng)較大,我們來看看抽象工廠模式的實(shí)現(xiàn)方法

1.創(chuàng)建一個(gè)接口,這個(gè)接口由實(shí)現(xiàn)類來實(shí)現(xiàn)

public interface ISender {
    public void Send();
}

2.實(shí)現(xiàn)類

public class MailSender implements ISender {
    @Override
    public void Send() {
        System.out.println("this is mailsender!");
    }
}

public class SmsSender implements ISender {

    @Override
    public void Send() {
        System.out.println("this is sms sender!");
    }
}

3.分別創(chuàng)建兩個(gè)發(fā)送短信和發(fā)送郵件的工廠類

public class SendMailFactory implements IProvider {
    @Override
    public ISender produce(){
        return new MailSender();
    }
}

public class SendSmsFactory implements IProvider{

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

4.創(chuàng)建一個(gè)工廠類的接口

public interface IProvider {
    public ISender produce();
}

5.測(cè)試

public class Test {

    public static void main(String[] args) {
        IProvider provider = new SendMailFactory();
        ISender sender = provider.produce();
        sender.Send();
    }
}

總結(jié):這樣做的意義就,符合了單一職責(zé)原則,我們?nèi)绻枰黾庸δ苤恍枰粫?huì)改之前的任何代碼,只需要在增加個(gè)工廠的實(shí)現(xiàn)類,和ISender的實(shí)現(xiàn)類就行了,降低了耦合度

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容