1. 程式人生 > 實用技巧 >設計模式-工廠方法(Factory Method)

設計模式-工廠方法(Factory Method)

基本來源於 [CyC2018-設計模式]([https://github.com/CyC2018/CS-Notes/blob/master/notes/設計模式 - 目錄.md](https://github.com/CyC2018/CS-Notes/blob/master/notes/設計模式 - 目錄.md))

目錄

意圖(Intent)

定義了一個建立物件的介面,但由子類決定要例項化哪個類。工廠方法把例項化操作推遲到子類。

類圖(Class Diagram)

在簡單工廠中,建立物件的是另一個類,而在工廠方法中,是由子類來建立物件。

下圖中,Factory 有一個 doSomething() 方法,這個方法需要用到一個產品物件,這個產品物件由 factoryMethod() 方法建立。該方法是抽象的,需要由子類去實現。

實現(Implementation)

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();
    }
}

JDK