設計模式-工廠方法
阿新 • • 發佈:2021-06-26
工廠方法
定義:定義一個建立產品物件的工廠介面,將實際建立工作推遲到子類中。核心工廠類不再負責產品建立,而是成為一個抽象工廠角色,僅負責工廠子類必須實現的介面實現,這樣進一步抽象的好處是使得工廠方法模式可以使系統可以在不修改具體工廠角色的情況下引進新的產品。
每一種工廠建立一種產品,避免了簡單工廠中的if/else判斷。
程式碼示例:
public abstract class AbstractFactory {
public abstract Shape getShape();
}
public class ShapeFactory1 extends AbstractFactory { public ShapeFactory1(){} private static final ShapeFactory1 shapeFactory1=new ShapeFactory1(); public static ShapeFactory1 getInstance(){ return shapeFactory1; } public Shape getShape( ){ return new Circle(); } }
public class ShapeFactory2 extends AbstractFactory { public ShapeFactory2(){} private static final ShapeFactory2 shapeFactory2=new ShapeFactory2(); public static ShapeFactory2 getInstance(){ return shapeFactory2; } @Override public Shape getShape() { return new Triangle(); } }
測試:
public static void main(String[] args) {
ShapeFactory1 shapeFactory1 = ShapeFactory1.getInstance();
Shape circle = shapeFactory1.getShape();
circle.draw();
Shape shape = ShapeFactory2.getInstance().getShape();
shape.draw();
}