設計模式:工廠方法模式
阿新 • • 發佈:2020-08-29
一.
在工廠方法模式種,不再由單一的工廠類生產產品,而是由工廠類的子類實現具體產品的建立。當增加一個產品時,只需要增加一個相應的工廠類的子類,實現生產這種產品,便可以解決簡單工廠生產太多產品導致其內部程式碼臃腫的問題。
二.通用寫法
抽象產品:
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.增加系統的抽象性和理解難度。