工廠模式(Factory Pattern) 是 Java 中最常用的設計模式之一, 這種型別的設計模式屬于創建型模式, 它提供了一種創建物件的最佳方式,
在工廠模式中, 我們在創建物件時不會對客戶端暴露創建邏輯, 并且是通過使用一個共同的介面來指向新創建的物件,
工廠模式讓呼叫者與被呼叫者之間解耦 :當兩者發生變化時, 相互之間的影響降到最低, 這個原則體顯了專案的可維護性 ,
優點:面向介面編程, 體現了面向物件的思想; 將創建物件的作業轉移到了工廠類;
JDK 中的工廠設計模式實體 :
a.java.util.Calendar, ResourceBundle and NumberFormat getInstance() 使用了工廠方法模式;
b.valueOf() 在包裝類中, 如Boolean, Integer 也使用了工廠方法模式;
c.Spring框架中, 就是使用了工廠模式來解決物件的創建,
舉例說明:創建不同的產品物件,例如手機、電腦,
a.創建介面,以供不同產品去實作
public interface Product {
public void work();
}
b.以供不同物件類去實作介面的方法
public class Computer implements Product {
@Override
public void work() {
System.out.println("電腦開始作業...");
}
}
public class Phone implements Product {
@Override
public void work() {
System.out.println("手機開始作業...");
}
}
c.定義工廠類來創建物件
public class ProductFactory {
public static Product getProduct(String name) {
if("phone".equals(name)){ //可將"phone"配置到檔案中獲取出來
return new Phone();
}else if ("computer".equals(name)){ //可將"computer"配置到檔案中獲取出來
return new Computer();
}else{
throw new ProductException("procuct 不存在!"); //自定義例外ProductException
}
}
}
測驗對比:
public class Test {
public static void main(String[] args) {
//1 Product p = new Phone();
//1 p.work();
//2 工廠模式:讓物件之間的強依賴,轉化成對工廠物件的依賴
Product p = ProductFactory.getProduct("phone"); //可將"phone"配置到檔案中獲取出來
p.work();
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/134985.html
標籤:其他
