工廠模式(Factory Method)分為三種 :簡單工廠模式、多個工廠方法模式、抽象工廠模式(Abstract Factory)
1.1多個工廠方法模式:是對普通工廠模式的改進(jìn),在普通工廠方法中,如果傳遞類型錯誤,則不能正確的創(chuàng)建對象,而在多個工廠方法模式中提供多個工廠方法,分別創(chuàng)建對象。
/**
* 具有發(fā)送功能
*/
public interface Sender {
void send();
}
/**
* 具有發(fā)送短信功能
*/
public class SmsSender implements Sender {
@Override
public void send() {
System.out.print("This is Sms Sender");
}
}
/**
* 具有發(fā)送郵件功能
*/
public class MailSender implements Sender {
@Override
public void send() {
System.out.print("This is email send");
}
}
/**
* 提供多個工廠方法,分別創(chuàng)建對象。
* 將工廠方法模式里方法設(shè)置靜態(tài),不需要創(chuàng)建實例,直接調(diào)用即可。
*/
public class SendFactory {
/**
*生產(chǎn)郵件發(fā)送器
* */
public static Sender produceSmsSender(){
return new SmsSender();
}
/**
*生產(chǎn)短信發(fā)送器
* */
public static Sender produceMailSender(){
return new MailSender();
}
}
工廠模式適合場景:凡是出現(xiàn)大量的產(chǎn)品需要創(chuàng)建,并且具有相同的接口時,可以通過工廠模式進(jìn)行創(chuàng)建,簡單工廠模式,如果一旦傳入的字符串或者類型有誤,不能正確的創(chuàng)建對象,靜態(tài)的多工廠模式不需要實例化工廠類(SendFactory 對象),直接調(diào)用方法創(chuàng)建需要的對象。