/*
* SignInFactory.java
*/
package com.cxj.User;
/*
* 抽象工厂
* @author cxj
* @date 2002/07/23
* @version 1.0.0
*/
import com.cxj.Mail.Session;
public abstract class SignInFactory {
//note:目前仅仅提供mysql的数据存储
private static String className = "com.cxj.User.MysqlSignIn";
private SignInFactory signInFactory = null;
/*
* 生成className定义的类的实例
* @return SignInFactory 的实例
*/
public synchronized static SignInFactory getInstance() {
if(signInFactory == null) {
try {
Class c = Class.forName(className);
signInFactory = (signInFactory) c.newInstance();
} catch (Exception ex) {
com.cxj.Tool.File.log(ex.toString());
return null;
}
}
return signInFactory;
}
/*
* 返回描述用户信息的Session类
* @param userName 用户名
* @param domains 用户所在的域
* @param passwd 用户密码
* @return Session 描述用户信息
*/
public abstract Session getSession(String userName,String domains,String passwd);
}
* SignInFactory.java
*/
package com.cxj.User;
/*
* 抽象工厂
* @author cxj
* @date 2002/07/23
* @version 1.0.0
*/
import com.cxj.Mail.Session;
public abstract class SignInFactory {
//note:目前仅仅提供mysql的数据存储
private static String className = "com.cxj.User.MysqlSignIn";
private SignInFactory signInFactory = null;
/*
* 生成className定义的类的实例
* @return SignInFactory 的实例
*/
public synchronized static SignInFactory getInstance() {
if(signInFactory == null) {
try {
Class c = Class.forName(className);
signInFactory = (signInFactory) c.newInstance();
} catch (Exception ex) {
com.cxj.Tool.File.log(ex.toString());
return null;
}
}
return signInFactory;
}
/*
* 返回描述用户信息的Session类
* @param userName 用户名
* @param domains 用户所在的域
* @param passwd 用户密码
* @return Session 描述用户信息
*/
public abstract Session getSession(String userName,String domains,String passwd);
}
{
Object obj = null;
try
{
Class cls = Class.forName(strClassName);
obj = cls.newInstance();
}
catch(Exception e){}
return obj;
}
{
Object obj = null;
try
{
Class cls = Class.forName(strClassName);
obj = cls.newInstance();
}
catch(Exception e){}
return obj;
}
Class cl = Class.forName(className);
return cl.newInstance();
}
//client:
String className = "java.util.Vector";
java.util.Vector vector = (java.util.Vector)getInstanceByName(className);其他RTTI信息可以用Reflection机制的其他相应类得到,例如Method,Constructor等。