为何要用工厂模式

友情提示:
本人仍是学生,有什么理解上的误差欢迎你们指出。
不过写博客是为了表达意思,若是有格式上的小错误大几率是由于我懒得改,请不要深究。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

相关文章
相关标签/搜索