工廠模式
}
* @Function: BlankApple.java
* @Description: 該函數的功能描述
*
* @return
* @return:返回結果描述
* @throws:異常描述
*
* @version: v1.0.0
* @author: 浪子
* @date: 2011-8-30 下午02:55:44
*
* Modification History:
* Date Author Version Description
*---------------------------------------------------------*
* 2011-8-30 浪子 v1.0.0 修改原因
*/
public String getName() {
System.out.println("我是白色蘋果");
return "";
}
* @Function: RedApple.java
* @Description: 該函數的功能描述
*
* @return
* @return:返回結果描述
* @throws:異常描述
*
* @version: v1.0.0
* @author: 浪子
* @date: 2011-8-30 下午02:55:04
*
* Modification History:
* Date Author Version Description
*---------------------------------------------------------*
* 2011-8-30 浪子 v1.0.0 修改原因
*/
public String getName() {
System.out.println("我是紅色蘋果");
return "";
}
public class AppleFactory {
private static HashMap hashMap=new HashMap();
/**
*
* @Function: AppleFactory.java
* @Description: 創建蘋果物品的方法
*
* @return
* @return:返回結果描述
* @throws:異常描述
*
* @version: v1.0.0
* @author: 浪子
* @date: 2011-8-30 下午02:57:01
*
* Modification History:
* Date Author Version Description
*---------------------------------------------------------*
* 2011-8-30 浪子 v1.0.0 修改原因
*/
public static Apple createApple(Class c) throws Exception
{
System.out.println(c.getPackage().getName());
Apple apple=(Apple)c.newInstance(); //通過工廠創建出蘋果
return apple;
}
/**
*
* @Function: AppleFactory.java
* @Description: 工廠模式的具體應用,初始化延值
*
* @param c
* @return
* @throws Exception
* @return:返回結果描述
* @throws:異常描述
*
* @version: v1.0.0
* @author: 浪子
* @date: 2011-8-30 下午03:25:32
*
* Modification History:
* Date Author Version Description
*---------------------------------------------------------*
* 2011-8-30 浪子 v1.0.0 修改原因
*/
public static Apple createAppleInitLazy(Class c) throws Exception
{
//這個工廠,也算是應用緩存,可以在啟動的時候,把一些耗資源的先連接上,放在Map里,整個應用保存,算是一個具體應該,通過這個就能獲取自己想要的對象實例
if(hashMap.containsKey(c.getName()))
return (Apple)hashMap.get(c.getName());
else
{
Apple apple=(Apple)c.newInstance();
hashMap.put(c.getName(), apple);
return apple;
}
}
/**
* @Function: AppleFactory.java
* @Description: 該函數的功能描述
*
* @param args
* @return:返回結果描述
* @throws:異常描述
*
* @version: v1.0.0
* @author: 浪子
* @date: 2011-8-30 下午02:50:31
*
* Modification History:
* Date Author Version Description
*---------------------------------------------------------*
* 2011-8-30 浪子 v1.0.0 修改原因
*/
public static void main(String[] args) throws Exception {
//下面是測試
Apple redApple= AppleFactory.createApple(RedApple.class);
redApple.getName();
Apple blankApple=AppleFactory.createApple(BlankApple.class);
blankApple.getName();
//Apple apple=AppleFactory.createApple(Apple.class);
//apple.getName();
}
}