2、運用場景:就是一個開關,同過開關來創建對象,省去自己寫,簡化前臺
3、代碼示例:數據庫選擇示例
//先定義一個創建數據庫的接口:
public interface IDataBase {
void createDataBase();
}
//接着創建數據庫對象並實現該接口:
public class Oracle implements IDataBase{
@Override
public void createDataBase() {
System.out.println("創建oracle數據庫");
}
}
public class Mysql implements IDataBase{
@Override
public void createDataBase() {
System.out.println("創建MySQL數據庫");
}
}
//再創建工廠:
public class DBFactory {
public IDataBase createDataBase(String type){
//根據不同的傳入條件創建不同的數據庫對象
if (type.equalsIgnoreCase("ORACLE")) {
return new Oracle();
}
if (type.equalsIgnoreCase("MYSQL")) {
return new Mysql();
}
return null;
}
}
//最後創建個主類來測試一下工廠的效果:
public class Main {
public static void main(String[] args) {
DBFactory dbFactory=new DBFactory();
dbFactory.createDataBase("oracle").createDataBase();
dbFactory.createDataBase("mysql").createDataBase();
}
}