计模式-创建型-工厂方法

  创建型-工厂方法

  前面已经写过抽象工厂。其实工厂方法应该放在抽象方法前面,抽象工厂中,大工厂可以生产多个产品。而在工厂方法个,每个工厂生产一个产品。

  假设我们定义用于导出的文件对象的接口(工厂生产的产品类型)

  ExportFileApi.java

public interface ExportFileApi {
    public void export();
}

  导出文件中,可以导出数据到文本文件,也可以导出数据到数据库。

  接口ExportFileApi的实现

  ExportTxtFile.java

public class ExportTxtFile implements ExportFileApi {
    @Override
    public void export() {
        System.out.println("导出数据到文本文件");
    }
}

  ExportDB.java

public class ExportDB implements ExportFileApi {
    @Override
    public void export() {
        System.out.println("导出数据到数据库备份文件");
    }
}

  产品已经有了,现在我们需要设计我们的工厂了。

  每个工厂生产一个产品。有多个产品,则需要多个工厂。现在定义一个工厂接口。

  ExportOperate.java

public interface ExportOperate {
    public  ExportFileApi factoryMethod();
}

  创建具体的工厂:

  ExportDBOperate.java

public class ExportDBOperate implements ExportOperate {
    @Override
    public ExportFileApi factoryMethod() {
        return new ExportDB();
    }
}

  ExportTxtFileOperate.java

public class ExportTxtFileOperate implements ExportOperate {
    @Override
    public ExportFileApi factoryMethod() {
        return new ExportTxtFile();
    }
}

   好了,写到这里,工厂方法已经写完了。看到没有,其实抽象工厂就是在这个的基础之上,工厂可以生产多次产品。

  使用工厂。

  FactoryMethodTest.java

public class FactoryMethodTest {
    public static void main(String[] args) {
        //创建工厂
        ExportOperate operate = new ExportTxtFileOperate();
        //创建产品
        ExportFileApi xportFileApi = operate.factoryMethod();
        xportFileApi.export();
    }
}

  运行结果:

导出数据到文本文件

猜你喜欢

转载自www.cnblogs.com/sxrtb/p/10951279.html