簡單工廠模式(****** factory pattern)屬於類的創新型模式,又叫靜態工廠方法模式(static factorymethod pattern),是通過專門定義乙個類來負責建立其他類的例項
,被建立的例項通常都具有共同的父類(或者父介面)。
簡單工廠模式的 uml 圖:
(1)抽象產品(abstract product)角色:簡單工廠模式所建立的所有物件的父類,注意,這裡的父類可以是介面也可以是抽象類,它負責描述所有例項所共有的公共介面。
(2)具體產品(concrete product)角色:簡單工廠所建立的具體例項物件,這些具體的產品往往都擁有共同的父類。
(3)工廠(factory creator)角色:這是簡單工廠模式的核心,由它負責建立所有的類的內部邏輯。當然工廠類必須能夠被外界呼叫,建立所需要的產品物件。
(1)抽象產品和具體產品角色:
public inte***ce car
class benz implements car
}class bike implements car
}class bmw implements car
}class lh implements car
}
(2)工廠角色:
public class drive***ctory else if (s.equalsignorecase("bmw")) else if (s.equalsignorecase("bike")) else
}}
(3)測試類
public static void main(string args) catch (exception e)
}
現在我們利用反射機制實現工廠模式,可以在不修改工廠類的情況下新增任意多個子類。
修改工廠類
public static car drivercar(string s) catch (exception e)
return car;
}
測試類:
public static void main(string args) catch (exception e)
}
但是有一點仍然很麻煩,就是需要知道完整的包名和類名,這裡可以使用properties配置檔案來完成。
配置檔案car.properties
bike=com.hlx.facotry.reflect.bike
bmw=com.hlx.facotry.reflect.bmw
lh=com.hlx.facotry.reflect.lh
benz=com.hlx.facotry.reflect.benz
測試類:
public class test catch (exception e)
} /**
* 但是有一點仍然很麻煩,就是需要知道完整的包名和類名,這裡可以使用properties配置檔案來完成。 載入配置檔案
* * car.properties 必須放在src目錄下或自己建立的目錄下
* @param key
* @return
*/public string getvalue(string key) catch (ioexception e)
return null;
}}
java簡單工廠模式
1.新建計算類 public class operation 設定 numa param numa public void set numa double numa 獲取 numb return numb public double get numb 設定 numb param numb publi...
Java 簡單工廠模式
簡單工廠模式又稱靜態工廠模式。從命名上就可以看出這個模式很簡單 定義乙個用於建立物件的介面。簡單工廠模式由工廠類角色 抽象產品角色和具體產品角色組成。工廠類角色是本模式的核心,含有一定的商業邏輯和判斷邏輯,它往往由乙個具體類實現。抽象產品角色一般是具體產品繼承的父類或者實現的介面,由介面或者抽象類來...
JAVA簡單工廠模式
簡單工廠模式概述 又名靜態工廠方法模式,它定義乙個具體的工廠類負責建立一些類的例項 優點 客戶端不需要再負責物件的建立,從而明確各個類的職責 缺點這個靜態工廠類負責所有物件的建立,如果有新的物件增加,或者某些物件的建立方式不同,就需要不斷的修改工廠類,不利於後期的維護 publicabstractc...