程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> JAVA簡單工廠模式(從現實生活角度理解代碼原理),java工廠

JAVA簡單工廠模式(從現實生活角度理解代碼原理),java工廠

編輯:JAVA綜合教程

JAVA簡單工廠模式(從現實生活角度理解代碼原理),java工廠


簡單工廠模式(Simple Factory),說他簡單是因為我們可以將此模式比作一個簡單的民間作坊,他們只有固定的生產線生產固定的產品。也可以稱他為靜態工廠設計模式,類似於之前提到過靜態代理設計模式,一條生產線生產一種產品(一個代理代理一種業務),為了方便大家理解,我們將KFC比作一個簡單的工廠,實現代碼如下:

 1 //建造接口(或者抽象類)提供食物生產方法
 2 interface Food{
 3     public  abstract void get();
 4 }
 5 //漢堡類(後廚生產線)來實現食物生產方法
 6 class Hamburger implements Food{
 7     public  void get(){
 8         System.out.println("漢堡來了");
 9     }
10 }
11 //炸雞類(後廚生產線)來實現食物生產方法
12 class Chicken implements Food{
13     public  void get(){
14         System.out.println("炸雞來了");
15     }
16 }
17 //KFC(靜態工廠類)
18 class KFC{
19     //提供獲取食物的方法(傳入的參數name為食客所點食物)
20     public static Food getFood(String name){
21         /*如果所點食物是炸雞/漢堡(見名知義)
22          *則實例化該生產線(通知對應後廚生產線)
23          */
24         if(name.equals("炸雞")){
25             return new Chicken();
26         }
27         if(name.equals("漢堡")){
28             return new Hamburger();
29         }
30         return null;
31     }
32 }
33 //測試類
34 public class Test{
35     public static void main(String[] args){
36         KFC kfc = new KFC();//實例化KFC
37         Food m = kfc.getFood("炸雞");
38         Food n = kfc.getFood("hanbao");//輸入的字符串不符合工廠類對應值
39         try{
40             m.get();
41             n.get();
42          //添加異常處理(如果沒有對應生產線則提示異常處理結果)
43         }catch(NullPointerException e){
44             System.out.print("沒有你要的食物");
45         }
46     }
47 }

輸出結果:

 1 炸雞來了 2 沒有你要的食物 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved