`
306963591
  • 浏览: 71000 次
  • 性别: Icon_minigender_1
  • 来自: 安徽省
社区版块
存档分类
最新评论

简单工厂模式的例子

    博客分类:
  • java
阅读更多

本示例简单的实现了工厂模式,请参见如下代码是如何实现的

 

 

/*
 * @(#) TestMain.java 1.0  2011-7-22 
 *
 * (c) Copyright 2011 smshen factoryDemo
 *
 * FILENAME    : TestMain.java
 * PACKAGE     : com.smshen.factory.test
 * CREATE DATE : 2011-7-22
 * AUTHOR      : smshen
 */

package com.smshen.factory.test;

import java.util.Properties;

import com.smshen.factory.fruit.IFruit;
import com.smshen.factory.fruitfactory.FruitFactory;
import com.smshen.factory.util.LoadPropertyFile;

/*******************************************************************************
 *  #(c) smshen factoryDemo 
 *
 *  功能说明: 测试类
  
 *  2011-7-22 下午2:56:55 smshen 创建文件
 * 
 *  修改说明: 创建文件

 *  2011-7-22 下午2:56:55 smshen 修改文件
 * 
 ******************************************************************************/

public class TestMain {

	/**
	 * 功能 :主方法
	
	 * 开发:smshen 2011-7-22
	
	 * @param args
	 */
	public static void main(String[] args) {
		//properties文件存放位置
		String path = "D:/project/study/eclipse/workspace/factoryDemo/src/fruit.properties";
		Properties properties = LoadPropertyFile.getProperties(path);
		IFruit fruit = null;
		fruit = (IFruit) FruitFactory.getInstance(properties.getProperty("apple"));
		fruit.eat();
	}
}

 /*

 * @(#) FruitFactory.java 1.0  2011-7-22 
 *
 * (c) Copyright 2011 smshen factoryDemo
 *
 * FILENAME    : FruitFactory.java
 * PACKAGE     : com.smshen.factory.fruitfactory
 * CREATE DATE : 2011-7-22
 * AUTHOR      : smshen
 */

package com.smshen.factory.fruitfactory;


/*******************************************************************************
 *  #(c) smshen factoryDemo 
 *
 *  功能说明: 水果工厂类
  
 *  2011-7-22 下午2:51:22 smshen 创建文件
 * 
 *  修改说明: 创建文件

 *  2011-7-22 下午2:51:22 smshen 修改文件
 * 
 ******************************************************************************/

public class FruitFactory {
	/**
	 * 
	 * 功能 :利用反射生成一个类的实例
	
	 * 开发:smshen 2011-7-27
	
	 * @param className 类路径名称
	 * @return Object 实例
	 */
	public static Object getInstance(String className) {
		Object obj = null;
		try {
			obj = Class.forName(className).newInstance();
		} catch (InstantiationException e) {
			e.printStackTrace();
		} catch (IllegalAccessException e) {
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
		return obj;
	}
}

 

还有几个类的代码没有贴出来,我将代码打包请大家自行下载吧!

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics