工廠模式(Factory Method)分為三種 :簡(jiǎn)單工廠模式矮台、多個(gè)工廠方法模式诺核、抽象工廠模式(Abstract Factory)
1.1多個(gè)工廠方法模式:是對(duì)普通工廠模式的改進(jìn)舒帮,在普通工廠方法中壳坪,如果傳遞類型錯(cuò)誤柳刮,則不能正確的創(chuàng)建對(duì)象砚著,而在多個(gè)工廠方法模式中提供多個(gè)工廠方法五辽,分別創(chuàng)建對(duì)象办斑。
/**
* 具有發(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");
}
}
/**
* 提供多個(gè)工廠方法,分別創(chuàng)建對(duì)象杆逗。
* 將工廠方法模式里方法設(shè)置靜態(tài)乡翅,不需要?jiǎng)?chuàng)建實(shí)例,直接調(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();
}
}
工廠模式適合場(chǎng)景:凡是出現(xiàn)大量的產(chǎn)品需要?jiǎng)?chuàng)建蠕蚜,并且具有相同的接口時(shí),可以通過(guò)工廠模式進(jìn)行創(chuàng)建悔橄,簡(jiǎn)單工廠模式靶累,如果一旦傳入的字符串或者類型有誤腺毫,不能正確的創(chuàng)建對(duì)象,靜態(tài)的多工廠模式不需要實(shí)例化工廠類(SendFactory 對(duì)象)挣柬,直接調(diào)用方法創(chuàng)建需要的對(duì)象潮酒。