什麼是工廠模式java
工廠模式(Factory Pattern)是Java 中最常用的設計模式之一。這種類型的設計模式屬於創建型模式,它提供了一種創建物件的最佳方式。
在工廠模式中,我們在建立物件時不會對客戶端暴露建立邏輯,並且是透過使用一個共同的介面來指向新建立的物件。
簡單的講就是用工廠方法代替了new的操作,在通俗點就是說,你new一個對象的時候直接調用工廠方法就行了,在編程時,需要定義一個工廠接口,由不同的的子類去實現,再定一個具體工廠類,定義一個產生實例的方法,我們透過這個方法來獲得實例就行了。
優點:
1、一個呼叫者想建立一個對象,只要知道其名稱就可以了。
2、擴充性高,如果想增加一個產品,只要擴充一個工廠類別就可以。
3、屏蔽產品的具體實現,呼叫者只關心產品的介面。
缺點:
每次增加一個產品時,都需要增加一個具體類別和物件實作工廠,使得系統中類別的數量成倍增加,在一定程度上增加了系統的複雜度,同時也增加了系統具體類別的依賴。這並不是什麼好事。
應用實例:
1、您需要一輛汽車,可以直接從工廠裡面提貨,而不用去管這輛汽車是怎麼做出來的,以及這個汽車裡面的具體實現。
工廠模式的簡單實作如下:
//所有车的接口 有一个共同改的方法 开车 public interface Car { public void drive(); } //奥迪类 实现car接口因为奥迪车也是车 肯定可以开的嘛 public class Audi implements Car { public Audi(){ System.out.println("生产出一辆奥迪"); } @Override public void drive() { System.out.println("开奥迪"); } } //宝马类 实现car接口因为宝马车也是车 肯定也可以开 public class Bmw implements Car{ public Bmw(){ System.out.println("生产出一辆宝马"); } @Override public void drive() { System.out.println("开宝马"); } } //生产车的工厂 该工厂接收一个车名 你只需要告诉他你要生产什么车 就可以生产出对应的车出来 public class CarFactory { public static Car getCar(String caename){ if(caename.equals("audi")){ return new Audi(); }else if(caename.equals("bmw")){ return new Bmw(); } return null; } } //测试 public class Test { public static void main(String[] args) { //告诉工厂类 你需要生产出一辆奥迪车 那么给昂他传一个参数audi进去 Car audi = CarFactory.getCar("audi"); //就可以生产出奥迪的车 调用开车的方法就可以开车啦 audi.drive(); //宝马类似 Car bmw = CarFactory.getCar("bmw"); bmw.drive(); } } 输出: 成产出一辆奥迪 开奥迪 生产出一辆宝马 开宝马
推薦教學:java教學
以上是什麼是工廠模式java的詳細內容。更多資訊請關注PHP中文網其他相關文章!