工厂方法模式
定义一个用于创建对象的接口,让子类决定实例化哪一个类,Factory Method使一个雷的实例化延迟到其子类。
public interfaceExportFileApi {
publicbooleanexport(String data);
}
public classExportTxtFile implementsExportFileApi{
@Override
publicbooleanexport(String data) {
//TODO Auto-generated methodstub
System.out.println("ExportTxtFile");
returntrue;
}
}
public classExportDB implementsExportFileApi{
@Override
publicboolean export(String data) {
//TODO Auto-generated methodstub
System.out.println("ExportDB");
returntrue;
}
}
public abstractclass ExportOperate {
publicbooleanexport(String data){
ExportFileApi api = factoryMethod();
returnapi.export(data);
}
protectedabstractExportFileApi factoryMethod();
}
public classExportTxtFileOperate extendsExportOperate{
@Override
protectedExportFileApi factoryMethod() {
//TODO Auto-generated methodstub
returnnew ExportTxtFile();
}
}
public classExportDBOperate extendsExportOperate{
@Override
protectedExportFileApi factoryMethod() {
//TODO Auto-generated methodstub
returnnew ExportDB();
}
}
public classClient {
publicstatic void main(String[] args){
ExportOperate operate = new ExportDBOperate();
operate.export("test");
}
}
Output:
ExportDB