簡單工廠模式是一種創建對象的設計模式,它通過一個工廠類來封裝對象的創建過程,客戶端無需直接調用具體的構造函數來創建對象,只需要通過工廠類來創建對象。
在Java中,應用簡單工廠模式可以按照以下步驟進行:
創建一個抽象產品類,定義產品的共同屬性和方法。
創建具體產品類,繼承抽象產品類,并實現其定義的方法。
創建一個工廠類,用于創建具體產品對象。工廠類通常包含一個靜態方法,根據傳入的參數來創建不同的產品對象。
在客戶端代碼中,通過調用工廠類的靜態方法來創建具體產品對象。
下面是一個簡單的示例,使用簡單工廠模式創建不同形狀的對象:
// 抽象產品類
abstract class Shape {
public abstract void draw();
}
// 具體產品類
class Rectangle extends Shape {
@Override
public void draw() {
System.out.println("Draw a rectangle");
}
}
class Circle extends Shape {
@Override
public void draw() {
System.out.println("Draw a circle");
}
}
// 工廠類
class ShapeFactory {
public static Shape createShape(String shapeType) {
if (shapeType.equalsIgnoreCase("rectangle")) {
return new Rectangle();
} else if (shapeType.equalsIgnoreCase("circle")) {
return new Circle();
} else {
return null;
}
}
}
// 客戶端代碼
public class Main {
public static void main(String[] args) {
Shape rectangle = ShapeFactory.createShape("rectangle");
rectangle.draw();
Shape circle = ShapeFactory.createShape("circle");
circle.draw();
}
}
運行上述代碼,將輸出:
Draw a rectangle
Draw a circle
在上面的示例中,抽象產品類是Shape
,具體產品類有Rectangle
和Circle
。工廠類ShapeFactory
包含一個靜態方法createShape
,根據傳入的參數來創建不同的具體產品對象。客戶端通過調用工廠類的靜態方法來創建產品對象,并調用其方法實現相應的功能。