1. 程式人生 > >Java工廠方法模式

Java工廠方法模式

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 public
interface 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工廠方法模式