工厂模式
}
* @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();
}
}