溫馨提示×

java簡單工廠模式怎么應(yīng)用

小億
93
2023-08-01 13:16:15
欄目: 編程語言

簡單工廠模式是一種創(chuàng)建對象的設(shè)計模式,它通過一個工廠類來封裝對象的創(chuàng)建過程,客戶端無需直接調(diào)用具體的構(gòu)造函數(shù)來創(chuàng)建對象,只需要通過工廠類來創(chuàng)建對象。

在Java中,應(yīng)用簡單工廠模式可以按照以下步驟進(jìn)行:

  1. 創(chuàng)建一個抽象產(chǎn)品類,定義產(chǎn)品的共同屬性和方法。

  2. 創(chuàng)建具體產(chǎn)品類,繼承抽象產(chǎn)品類,并實現(xiàn)其定義的方法。

  3. 創(chuàng)建一個工廠類,用于創(chuàng)建具體產(chǎn)品對象。工廠類通常包含一個靜態(tài)方法,根據(jù)傳入的參數(shù)來創(chuàng)建不同的產(chǎn)品對象。

  4. 在客戶端代碼中,通過調(diào)用工廠類的靜態(tài)方法來創(chuàng)建具體產(chǎn)品對象。

下面是一個簡單的示例,使用簡單工廠模式創(chuàng)建不同形狀的對象:

// 抽象產(chǎn)品類
abstract class Shape {
public abstract void draw();
}
// 具體產(chǎn)品類
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();
}
}

運(yùn)行上述代碼,將輸出:

Draw a rectangle
Draw a circle

在上面的示例中,抽象產(chǎn)品類是Shape,具體產(chǎn)品類有RectangleCircle。工廠類ShapeFactory包含一個靜態(tài)方法createShape,根據(jù)傳入的參數(shù)來創(chuàng)建不同的具體產(chǎn)品對象??蛻舳送ㄟ^調(diào)用工廠類的靜態(tài)方法來創(chuàng)建產(chǎn)品對象,并調(diào)用其方法實現(xiàn)相應(yīng)的功能。

0