設計模式 -> 建立型 - 工廠方法(Factory Method)
阿新 • • 發佈:2022-05-07
本文主要分析設計模式 - 工廠方法(Factory Method),它定義了一個建立物件的介面,但由子類決定要例項化哪個類。工廠方法把例項化操作推遲到子類
1. 意圖
定義了一個建立物件的介面,但由子類決定要例項化哪個類。工廠方法把例項化操作推遲到子類。
2. 類圖
在簡單工廠中,建立物件的是另一個類,而在工廠方法中,是由子類來建立物件。 下圖中,Factory 有一個 doSomething() 方法,這個方法需要用到一個產品物件,這個產品物件由 factoryMethod() 方法建立。該方法是抽象的,需要由子類去實現。
3. 實現
public abstract class Factory { abstract public Product factoryMethod(); public void doSomething() { Product product = factoryMethod(); // do something with the product } }
public class ConcreteFactory extends Factory {
public Product factoryMethod() {
return new ConcreteProduct();
}
}
public class ConcreteFactory1 extends Factory {
public Product factoryMethod() {
return new ConcreteProduct1();
}
}
public class ConcreteFactory2 extends Factory { public Product factoryMethod() { return new ConcreteProduct2(); } }