Java设计模式设计模式

《设计模式》工厂方法模式

2019-08-08  本文已影响1人  敏捷Studio

定义

定义一个用于创建对象的接口,让子类决定实例化哪个类。

介绍

UML类图

工厂方法模式UML类图

角色说明:

实现

1、创建抽象产品类,定义公共接口:

// 抽象产品类
public abstract class Product {
  public abstract void show();
}

2、创建具体产品类,继承Product类:

// 具体产品类A 
public class ProductA extends Product {
  @Override
  public void show() {
    System.out.println("product A");
  }
}
// 具体产品类B
public class ProductB extends Product {
  @Override
  public void show() {
    System.out.println("product B");
  }
}

3、创建抽象工厂类,定义公共接口:

// 抽象工厂类
public abstract class Factory {
  public abstract Product create();
}

4、创建具体工厂类,继承抽象工厂类,实现创建具体的产品:

// 具体工厂类A
public class FactoryA extends Factory {
  @Override
  public Product create() {
    return new ProductA();
  }
}
// 具体工厂类B
public class FactoryB extends Factory {
  @Override
  public Product create() {
    return new ProductB();
  }
}

5、测试方法:

public void test() {
  // 产品A
  Factory factoryA = new FactoryA();
  Product productA = factoryA.create();
  productA.show();
  // 产品B
  Factory factoryB = new FactoryB();
  Product productB = factoryB.create();
  productB.show();
}

应用场景

优缺点

优点:

缺点

Android中的源码分析

Android中的ThreadFactory就是使用了工厂方法模式来生成线程的,线程就是ThreadFactory的产品。

上一篇 下一篇

猜你喜欢

热点阅读