Java基礎-工廠方法模式

Merbng發表於2018-05-10

概念

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

類圖

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

設計模式-工廠設計模式.png

實現

public abstract class Factory{
  abstract public Product factoryMethod();
  public void doSomething(){
    Product product =  factoryMethod();
   }
}
複製程式碼
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();
  }
}
複製程式碼

相關文章