工廠方法設計模式是一種使用工廠原則的創造型模式。工廠原則就是 通過調用一個方法,這個方法創造一個對象的實例然后將它返回。通過向這個方法傳遞參數來決定返回哪個類型的對象。
工廠方法設計模式使用繼承來決定返回哪個對象。基礎的創造類是抽象的。而具體的創造類繼承這個基類。工廠方法在基類中聲明。如果工廠方法是抽象的,那么所有繼承這個類的類都必須有這個方法。如果不是,則可以根據需要選擇覆蓋它與否。
當一個類想實例化其中一個具體類的實例時,這個類就可以通過調用具體類的工廠方法來生成正確的對象。
舉例來說,假設我們有兩個類,Product1和Product2。為了能接收到這兩個類任何一個的實例,我們必須讓他們繼承或實現相同的類或接口。我們創造一個叫做Creator的抽象類。如下:

public abstract class Creator
{
public abstract getProduct();
}
現在我們創造兩個類繼承Creator,叫做Product1Creator和Product2Creator。每一個都有一個getProduct方法。
例如Product1Creator:

public class Product1Creator extends Creator
{


public Product getProduct()
{
return new Product1();
}
}
工廠方法設計模式使用繼承來決定返回哪個對象。基礎的創造類是抽象的。而具體的創造類繼承這個基類。工廠方法在基類中聲明。如果工廠方法是抽象的,那么所有繼承這個類的類都必須有這個方法。如果不是,則可以根據需要選擇覆蓋它與否。
當一個類想實例化其中一個具體類的實例時,這個類就可以通過調用具體類的工廠方法來生成正確的對象。
舉例來說,假設我們有兩個類,Product1和Product2。為了能接收到這兩個類任何一個的實例,我們必須讓他們繼承或實現相同的類或接口。我們創造一個叫做Creator的抽象類。如下:





例如Product1Creator:










