close
簡單工廠模式(Simple Factory)屬於『創建型模式』,又稱為靜態工廠模式(Static Factory)。
簡單工廠其實不是設計模式,比較像是一種編程習慣。
定義:
通過專門定義一個類來負責創建其他類的實例,被創建的實例通常都具有共同的父類。
組成:
1. 工廠角色(Factory):負責實現創建所有實力的內部邏輯。
2. 抽象產品角色(Product):它一般是由具體產品繼承的父類或者實現的接口。
3. 具體產品角色(ConcreteProduct):工廠類所創建的對象就是此角色的實例。
程式碼:
Step1public abstract class Shape {public abstract void draw();}Step2
public class Circle extends Shape{@Overridepublic void draw() {System.out.println("圓形工廠:圓形");
}}public class Square extends Shape{@Overridepublic void draw() {System.out.println("方形工廠:正方形");
}}Step3
public class SimpleFactory {public static Shape createProduct(String product) {if(product.equals("circle")){return new Circle();}else if(product.equals("square")){return new Square();}else {
System.out.println("無此產品");
return null;
}}}Step4
public class Main {public static void main(String args[]) {SimpleFactory.createProduct("circle").draw();
SimpleFactory.createProduct("square").draw();
}}Step5(Output)
圓形工廠:圓形方形工廠:正方形
優點:
- 1. 工廠含必要的邏輯判斷,可以決定在什麼時候創建哪一個產品的實例,客戶端可以免除直接創建產品對象的責任。
- 2. 可以減少使用者的記憶量。
- 3. 可以在不修改客戶端資料的情況下,變更或新增具體產品,提高了系統的靈活性。
缺點:
- 1. 工廠集中所有產品的創建邏輯,一旦無法正常使用,整個系統都受影響。
- 2. 系統擴展困難,一旦增加新產品就不得不修改工廠邏輯,而在產品多的情況下,可能造成工廠邏輯複雜,不利於系統的擴展與維護。
文章標籤
全站熱搜
留言列表