自己实现一个Factory
CollectionFactory.java文件:
package cn.itcast;
import java.util.*;
import java.io.*;
public class CollectionFactory
{
public static String KEY_PROPERTIES_FILE = "cn.itcast.collectionfile";
public static String KEY_CLASS = "class";
public static String KEY_ELEMENTS = "elements";
public static Collection getCollection() throws Exception
{
String properties_file = System.getProperty(KEY_PROPERTIES_FILE);
if(properties_file == null)
{
throw new IllegalArgumentException("not found property file!");
}
InputStream ips = CollectionFactory.class.getResourceAsStream("/" + properties_file);
if(ips == null)
{
throw new IllegalArgumentException("file not exists!");
}
Properties props = new Properties();
props.load(ips);
ips.close();
String strClassName = props.getProperty(KEY_CLASS);
Class classCollection = Class.forName(strClassName);
Collection objCollection = (Collection) classCollection.newInstance();
String strElements = props.getProperty(KEY_ELEMENTS);
String [] elements = strElements.split(",");
for(String element : elements)
{
objCollection.add(element);
}
return objCollection;
}
}
MainClass.java文件:
package cn.itcast;
import java.util.*;
import org.apache.commons.logging.LogFactory;
import org.apache.commons.logging.Log;
public class MainClass
{
public static void main(String [] args) throws Exception
{
Log log = LogFactory.getLog(MainClass.class);
Collection objCollection = CollectionFactory.getCollection();
for(Object obj : objCollection)
{
log.info(obj.toString());
}
}
}