1. 程式人生 > 實用技巧 >設計模式:工廠方法模式

設計模式:工廠方法模式

一.

  在工廠方法模式種,不再由單一的工廠類生產產品,而是由工廠類的子類實現具體產品的建立。當增加一個產品時,只需要增加一個相應的工廠類的子類,實現生產這種產品,便可以解決簡單工廠生產太多產品導致其內部程式碼臃腫的問題。

二.通用寫法

抽象產品:

public interface IProduct {
    public void doService();
}

實現抽象產品:

public class ProductA implements IProduct {
    @Override
    public void doService() {
        System.out.println("ProductA");
    }
}
public class ProductB implements IProduct {
    @Override
    public void doService() {
        System.out.println("ProductB");
    }
}

抽象工廠:

public interface IFactory {
    public IProduct produce();
}

實現抽象工廠:

public class FactoryA implements IFactory {
    @Override
    public IProduct produce() {
        return new ProductA();
    }
}
public class FactoryB implements IFactory {
    @Override
    public IProduct produce() {
        return new ProductB();
    }
}

 測試:

public class Test {
    public static void main(String[] args) {
        IFactory factory = new FactoryA();
        IProduct product = factory.produce();
        product.doService();
    }
}

 

3.uml類圖

該模式的缺點:

1.類的個數過多,增加複雜度

2.抽象產品只能生產一種產品,可以用抽象工廠模式解決

3.增加系統的抽象性和理解難度。