首頁  >  文章  >  Java  >  Java設計模式之工廠方法模式揭秘

Java設計模式之工廠方法模式揭秘

WBOY
WBOY原創
2024-05-09 14:42:01833瀏覽

工廠方法模式是一種創建型設計模式,它透過介面定義創建物件的流程,將具體創建過程委託給實現該介面的特定工廠類,從而解耦創建過程和具體類,易於擴展和提高可測試性。主要結構包括抽象工廠、具體工廠和產品。

Java設計模式之工廠方法模式揭秘

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn