JAVA設計模式(二)——簡單工廠模式
阿新 • • 發佈:2020-09-10
工廠模式就是建立一個工廠類,對實現了同一介面的一些類進行例項的建立,將建立物件的過程交給工廠類(我們舉一個傳送郵件和簡訊的例子):
模式名稱 | 優點 | 缺點 | 使用場景 |
簡單工廠模式 | 通過使用工廠類,外界可以從直接建立具體產品物件的尷尬局面擺脫出來,僅僅需要負責“消費”物件就可以了。而不必管這些物件究竟如何建立及如何組織的.明確了各自的職責和權利,有利於整個軟體體系結構的優化。 | 工廠類集中了所有例項的建立邏輯,違反了高內聚責任分配原則,如果需要新增新的類,則就需要改變工廠類了。 |
①工廠類負責建立的物件比較少 ②客戶只知道傳入工廠類的引數,對於如何建立物件(邏輯)不關心 |
首先定義一個介面類Sender,並建立2個實現類四號線Sender介面,程式碼如下:
public interface Sender { void Send(); } // 郵件傳送 public class MailSender implements Sender { public void Send() { System.out.println("this is MailSender"); } } // 簡訊傳送 public class SmsSender implements Sender { public voidSend() { System.out.println("this is SmsSender"); } }
建立工廠類ManySendFactory
public class SendFactory { // 根據傳入型別,去獲取對應的實列 public Sender getSender(String type) { if ("mail".equals(type)) { return new MailSender(); } else if ("sms".equals(type)) {return new SmsSender(); } return null; } }
使用方法:
SendFactory factory = new SendFactory(); //建立工廠類 Sender sender = factory.getSender("sms"); // 根據型別獲取對應實列 sender.Send();