工厂模式

优点:减低了代码的耦合度,良好的封装性,代码结构清晰。扩展性好。

缺点:添加新的产品时就要编写一个新的产品类,同时还要引入抽象层,增加代码量结构复杂化。

1、创建产品类

public abstract class Product {
/**
 * 产品类的抽象方法
 * 由具体的产品类去实现
 * */
public abstract void method();
}

2、创建具体产品类

public class ConcreteProductA extends Product {
  @Override
  public void method() {
    System.out.println("产品A");
  }
}
public class ConcreteProductB extends Product {
  @Override
  public void method() {
    System.out.println("产品B");
  }
}

3、具体实现工厂

public class ConcreteFactoryA extends Factory {
  /**
   * 具体工厂类
   * */
  @Override
  public Product createProduct() {
    return new ConcreteProductA();
  }
}

public class ConcreteFactoryB extends Factory {
  /**
   * 具体工厂类
   * */
  @Override
  public Product createProduct() {
    return new ConcreteProductB();
  }
}

4、创建需要的产品

    Factory factoryA = new ConcreteFactoryA();
    Product productB = factoryA .createProduct();
    productB .method();
    Factory factoryB = new ConcreteFactoryB();
    Product productB = factoryB .createProduct();
    productB .method();
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容