定义一个用于创建对象的接口,让子类决定将那一个类实例化; 工厂方法让类的实例化延迟到子类。

Product: 抽象产品类
ConcreteProduct:
Factory:抽象工厂,声明工厂方法 Factory Method,用户返回一个产品;抽象工厂是工厂方法模式的核心
ConcreteFactory:实现抽象工厂中定义的工厂方法,并由客户端调用,返回一个具体产品类实例
interface Factory{
    public Product factoryMethod();
}
class ConcreteFactory implements Factory{
      public Product factoryMethdo()
      {
          return new ConcreteProduct();
     }  
}
客户端代码样例:
.... 
Factory factory;
     factory = new ConcreteFactory();   
               --- 可通过配置文件实现(配置文件存储实例具体工厂类类名)
     Product product;
     product = factory.factoryMethod();
...
日志记录器
1、类图
原文:https://www.cnblogs.com/clarino/p/9721591.html