java設計模式-工廠模式
阿新 • • 發佈:2019-02-12
null 簡單工廠 輸出 reat 簡單 static style .com system
工廠模式種類
工廠模式可以分為三類:簡單工廠模式,工廠方法模式以及抽象工廠模式。
簡單工廠模式
簡單工廠模式又稱為靜態工廠方法模式,為何稱為靜態工廠方法模式呢?是因為該模式主要由一個工廠類的靜態方法來提供各種產品。
簡單工廠模式的優點
這裏假設有三個角色:消費者,生產者和產品。通過簡單工廠模式消費者並不需要關心產品是如何生產出來的,也不需要關心產品制造的具體流程,只需要直接去生產者那裏直接購買便可。這在一定程度上實現了生產者和產品之間的解耦,每個角色之間的分工變得更加明確。
簡單工廠模式示例
產品接口
public interface Phone { //產品類所繼承的公共接口,也可以為抽象類public String getPhoneName(); }
產品
/** * 蘋果生產商 */ public class IPhone implements Phone { @Override public String getPhoneName() { return "我們生產蘋果手機"; } } /** * vivo生產商 */ public class VivoPhone implements Phone { @Override public String getPhoneName() {return "我們生產vivo手機"; } } /** * 華為生產商 */ public class HuaWeiPhone implements Phone { @Override public String getPhoneName() { return "我們生產華為手機"; } }
工廠
/** * 工廠負責生產各種手機,這裏的生產可以理解為對象的創建 */ public class Factory { //蘋果手機 private static final String APPLE = "apple";//vivo手機 private static final String VIVO = "vivo"; //華為手機 private static final String HUAWEI = "huawei"; //根據用戶的選擇來提供手機 public static Phone create(String name) { switch (name) { case APPLE: return new IPhone(); case VIVO: return new VivoPhone(); case HUAWEI: return new HuaWeiPhone(); default: return null; } } }
消費者(客戶端)
/** * 消費者 */ public class Customer { public static void main(String[] args) { //用戶買個蘋果手機 Phone phone = Factory.create("apple"); System.out.println(phone.getPhoneName()); //用戶買個華為手機 Phone phone2 = Factory.create("huawei"); System.out.println(phone2.getPhoneName()); } }
輸出結果:
java設計模式-工廠模式