Java設計模式之003--工廠模式

工廠模式(Factory PatternJava 中最經常使用的設計模式之一。 這種類型的設計模式屬於建立型模式, 它提供了一種建立對象的最佳方式。 java

在工廠模式中, 咱們在建立對象時不會對客戶端暴露建立邏輯, 而且是經過使用一個共同的接口來指向新建立的對象。 編程

工廠模式讓調用者與被調用者之間解耦 :當二者發生變化時, 相互之間的影響降到最低, 這個原則體顯了項目的可維護性

優勢:面向接口編程, 體現了面向對象的思想; 將建立對象的工做轉移到了工廠類;

JDK 中的工廠設計模式實例 :
a.java.util.Calendar, ResourceBundle and NumberFormat getInstance() 使用了工廠方法模式;
b.valueOf() 在包裝類中, 如Boolean, Integer 也使用了工廠方法模式;
c.Spring框架中, 就是使用了工廠模式來解決對象的建立。

設計模式

舉例說明:建立不一樣的產品對象,例如手機、電腦。框架

a.建立接口,以供不一樣產品去實現ide

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.定義工廠類來建立對象spa

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();    }}
相關文章
相關標籤/搜索