工廠方法模式是一種創建型設計模式,它透過介面定義創建物件的流程,將具體創建過程委託給實現該介面的特定工廠類,從而解耦創建過程和具體類,易於擴展和提高可測試性。主要結構包括抽象工廠、具體工廠和產品。
Java 設計模式之工廠方法模式揭秘
引言
工廠方法模式是一種創建型設計模式,它允許程式設計師定義一個介面用於創建對象,但對創建過程進行了抽象化。這意味著具體物件創建的過程可以由實作該介面的特定工廠子類別來處理。
工廠方法模式的優點
結構
工廠方法模式主要由三個部分組成:
程式碼範例
以下是一個工廠方法模式的Java 程式碼範例:
// 抽象工厂接口 interface ShapeFactory { Shape createShape(ShapeType type); } // 具体工厂类 class CircleFactory implements ShapeFactory { @Override public Shape createShape(ShapeType type) { return new Circle(); } } // 具体工厂类 class SquareFactory implements ShapeFactory { @Override public Shape createShape(ShapeType type) { return new Square(); } } // 产品类 class Shape { private String type; public Shape(String type) { this.type = type; } public String getType() { return type; } } // 圆形产品类 class Circle extends Shape { public Circle() { super("Circle"); } } // 正方形产品类 class Square extends Shape { public Square() { super("Square"); } } // 客户端代码 public class Main { public static void main(String[] args) { ShapeFactory circleFactory = new CircleFactory(); Shape circle = circleFactory.createShape(ShapeType.CIRCLE); System.out.println(circle.getType()); // 输出: Circle ShapeFactory squareFactory = new SquareFactory(); Shape square = squareFactory.createShape(ShapeType.SQUARE); System.out.println(square.getType()); // 输出: Square } }
結論
工廠方法模式是一種靈活且可擴展的設計模式,它提供了一種解耦創建過程與特定類別的方法。這使得程式碼更容易維護和擴展,並提高了可測試性。
以上是Java設計模式之工廠方法模式揭秘的詳細內容。更多資訊請關注PHP中文網其他相關文章!