爲何要用工廠模式

友情提示:
本人仍是學生,有什麼理解上的誤差歡迎你們指出。
不過寫博客是爲了表達意思,若是有格式上的小錯誤大機率是由於我懶得改,請不要深究。html

  1. 簡單工廠模式
    ==> 從建立許多不一樣的對象,變成往一個方法中傳入不一樣的參數
public static void main(String[] args) {
    // 想畫100個的圖形,
    // 不用工廠模式:
    Shape s1 = new Circle();
    s1.draw();
    Shape s2 = new Square();
    s2.draw();
    .
    .
    Shape s100 = new Circle();
    s100.draw();

    // 而使用工廠模式的話
    ShapeFactory shapeFactory = new ShapeFactory();
    for (int i = 0; i < 100; i++) {
          Shape shape1 = shapeFactory.getShape(i);
          shape1.draw();
    }
 }
  1. 工廠方法模式
    下面兩種看起來沒什麼區別,甚至前者的還不須要實現抽象工廠類,可是,
    ==> 若是想讓這個通用畫圖器可以畫三角,前者須要直接改核心代碼,後者只須要新建一個Trianglefactory implements ShapeFactory,就能夠繼續用p2的代碼了
// 想作一個**通用**畫圖形工具
public void readPicture(String type) {
      // 不用工廠方法模式

      if(type.equals("Circle")) {
            Shape s = ShapeFactory.getShape("Circle");
            s.draw();
      } else {
            Shape s = ShapeFactory.getShape("Square"); 
            s.draw();
      }

      // 用工廠方法模式
      // p1
      ShapeFactory factory=new CircleFactory();
      
      { // p2
      Shape=factory.getShape();
      shape.draw();
      }
}

參考:
菜鳥教程:工廠模式
掘金java

相關文章
相關標籤/搜索