此設計模式爲創造型 設計模式
主要涉及到 要創建的對象 都具有相同的特性 。
優點:
1、一個調用者想創建一個對象,只要知道其名稱就可以了。 2、擴展性高,如果想增加一個產品,只要擴展一個工廠類就可以。 3、屏蔽產品的具體實現,調用者只關心產品的接口。
應用實例:
1、您需要一輛汽車,可以直接從工廠裏面提貨,而不用去管這輛汽車是怎麼做出來的,以及這個汽車裏面的具體實現。 2、Hibernate 換數據庫只需換方言和驅動就可以。
代碼實現:
Car.class 產品的接口類
package com.simpleFactory;
public interface Car {
void drive();
}
奧迪的實例類
package com.simpleFactory;
public class Aodi implements Car{
@Override
public void drive() {
System.out.println("奧迪開車");
}
}
寶馬的實例類
package com.simpleFactory;
public class BaoMa implements Car {
@Override
public void drive() {
System.out.println("寶馬開車");
}
}
奔馳的實例類
package com.simpleFactory;
public class BenChi implements Car{
@Override
public void drive() {
System.out.println("奔馳開車");
}
}
汽車的實例工廠類
package com.simpleFactory;
public class CarFactory {
public static Car getInstance(String instanceName){
if("baoma".equals(instanceName)){
return new BaoMa();
}else if("aodi".equals(instanceName)){
return new Aodi();
}else if ("benchi".equals(instanceName)){
return new BenChi();
}
return null;
}
}
測試類
package com.simpleFactory;
public class Test {
public static void main(String[] args) {
Car car = CarFactory.getInstance("benchi");
car.drive();
}
}
這種設計模式 很簡單 我將它實際運用到了項目中 用來製作圖表