1. 程式人生 > >設計模式—工廠模式

設計模式—工廠模式

pro java pla 靜態工廠方法 靜態工廠模式 -i bsp sse src

java中的23中設計模式 1. 工廠模式 工廠模式分為三種 (1.)普通工廠模式 普通工廠模式,就是建立一個工廠類,對實現了同一個接口的一些類進行實例的創建。 普通工廠模式關系圖 技術分享 以下舉例:(我們舉一個發送郵件和短信的例子) 首先,創建二者的共同接口: [java] view plaincopy public interface Sender { public void Send(); } 其次,創建實現類: [java] view plaincopy 實現類一 public class MailSender implements Sender { @Override public void Send() { System.out.println("this is mailsender!"); } } [java] view plaincopy 實現類二 public class SmsSender implements Sender { @Override public void Send() { System.out.println("this is sms sender!"); } } 最後,建工廠類: [java] view plaincopy public class SendFactory { public Sender produce(String type) { if ("mail".equals(type)) { return new MailSender(); } else if ("sms".equals(type)) { return new SmsSender(); } else { System.out.println("請輸入正確的類型!"); return null; } } } 我們來測試下: public class FactoryTest { public static void main(String[] args) { SendFactory factory = new SendFactory(); Sender sender = factory.produce("sms"); sender.Send(); } } 輸出:this is sms sender! (2.) 多個工廠模式 多個工廠模式,是對普通工廠方法的改進,在普通工廠模式中,如果字符串傳遞出錯,則不能正 確創建對象,而多個工廠模式是提供多個工廠方法,分別創建對象。 多個工廠模式關系圖 技術分享 多個工廠模式我們只需要將SnedFactory這個類修改就行, 如下: [java] view plaincopy 多個工廠模式創建如下: public class SendFactory { 郵件發送工廠者模式 public Sender produceMail(){ return new MailSender(); } 郵件發送方工廠者模式 public Sender produceSms(){ return new SmsSender(); } } 測試類如下: [java] view plaincopy public class FactoryTest { public static void main(String[] args) { SendFactory factory = new SendFactory(); Sender sender = factory.produceMail(); sender.Send(); } } 輸出:this is mailsender! (3.)靜態工廠方法模式 靜態工廠方法模式,將上面的多個工廠方法模式設置為靜態的,不需要創建實例直接調用即可。 靜態多個工廠模式我們只需要將SnedFactory這個類修改就行, 如下: [java] view plaincopy public class SendFactory { // 設置為靜態 public static Sender produceMail(){ return new MailSender(); } public static Sender produceSms(){ return new SmsSender(); } } [java] view plaincopy public class FactoryTest { public static void main(String[] args) { Sender sender = SendFactory.produceMail(); sender.Send(); } } 輸出:this is mailsender 總體來說,工廠模式適合:凡是出現大量的產品需要創建,並且有共同的接口時,可以通過工廠方法 模式進行創建。在以上的三種模式中,第一種如果傳入字符集有誤,不能正確創建對象,第三種相對 於第二種,不需要實例化工廠,所以大多數情況下,我們會選擇用第三種工廠模式—-靜態工廠模式。

設計模式—工廠模式