Java工廠方法模式
阿新 • • 發佈:2017-09-10
ace 工廠 @class int ret 類工廠 2014年 implement package
工廠方法模式:
/**
* 工廠方法模式:也叫工廠模式,屬於創建型模式,父類工廠(接口)負責定義產品對象的公共接口,
* 而子類工廠負責創建具體的產品對象。
* 目的:是為了把產品的實例化操作延遲到子類工廠中完成,通過子類工廠類決定實例化哪一個具體對象。
*
* 工廠方法模式包含四個部分:
* 1.抽象產品: 產品對象的基類,或者是同一的接口。
* 2.具體的子類產品:各個不同的實例對象類。
* 3.抽象工廠: 所有子類工廠的基類,或同一接口。
* 4.具體的工廠子類:負責每個產品對象的具體創建。
*/
1 /** 2 * 抽象產品,交通工具接口3 * @ClassName: TrafficTool 4 * @author BlueLake 5 * @date 2014年9月10日 下午4:42:10 6 */ 7 public interface TrafficTool { 8 //去上班的抽象方法 9 public void gotoWork(); 10 }
1 /** 2 * 抽象工廠:交通工具工廠 3 * @ClassName: TrafficFactory 4 * @author BlueLake 5 * @date 2014年9月10日 下午4:43:53 6 */ 7 publicinterface TrafficFactory { 8 //創建交通工具的抽象方法 9 public TrafficTool getTool(); 10 11 }
1 package demo.mode.factory; 2 //具體產品:自行車 3 public class Bike implements TrafficTool{ 4 //具體上班方法 5 public void gotoWork(){ 6 System.out.println("騎自行車去上班-bike-"); 7 } 8 9 }
1 package demo.mode.factory;2 //具體工廠:自行車工廠 3 public class BikeFactory implements TrafficFactory{ 4 //生成自行車對象 5 public TrafficTool getTool(){ 6 return new Bike(); 7 } 8 9 }
1 package demo.mode.factory; 2 //具體產品:公交車 3 public class Bus implements TrafficTool{ 4 //具體上班方法 5 public void gotoWork() { 6 System.out.println("坐公交車上班---bus---"); 7 } 8 9 }
1 package demo.mode.factory; 2 //具體工廠:公交車 3 public class BusFactory implements TrafficFactory{ 4 //生成公交車 5 public TrafficTool getTool() { 6 return new Bus(); 7 } 8 }
測試:
1 package demo.mode.factory; 2 3 public class FactoryTest { 4 /** 5 * 工廠方法模式:也叫工廠模式,屬於創建型模式,父類工廠(接口)負責定義產品對象的公共接口, 6 * 而子類工廠負責創建具體的產品對象。 7 * 目的:是為了把產品的實例化操作延遲到子類工廠中完成,通過子類工廠類決定實例化哪一個具體對象。 8 * 9 * 工廠方法模式包含四個部分: 10 * 1.抽象產品: 產品對象的基類,或者是同一的接口。 11 * 2.具體的子類產品:各個不同的實例對象類。 12 * 3.抽象工廠: 所有子類工廠的基類,或同一接口。 13 * 4.具體的工廠子類:負責每個產品對象的具體創建。 14 */ 15 public static void main(String[] args){ 16 //定義公共的變量,工廠接口 17 TrafficFactory fac = null; 18 TrafficTool tool = null; 19 20 //具體調用時,只需要調用不同的工廠就可以實現不用的操作。 21 fac = new BikeFactory(); 22 tool = fac.getTool(); 23 tool.gotoWork();//騎自行車去上班-bike- 24 25 fac = new BusFactory(); 26 tool = fac.getTool(); 27 tool.gotoWork();//坐公交車上班---bus--- 28 } 29 }
工廠方法模式,到此就學會了。
簡單吧!
Java工廠方法模式