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

java設計模式-工廠模式

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設計模式-工廠模式