这是抽象工厂的方法,主要是用于用户的登录方法。如果登录成功,就可以将用户的信息存在于一个SESSION中。
当然产生工厂方法又是一个SINGLETON的方法,至于创建具体的工厂是读取一个XML的文本字符文件。当然,这里要用到一个
PropertyManager类,来返回规定名称的VALUE。当然其有一个默认的具体工厂即是用DB来实现的。具体成员对象如下。
private static String className =
"com.Yasna.forum.database.DbAuthorizationFactory";--指明默认工厂
private static AuthorizationFactory factory = null;--用以实现SINGLETON
public static Authorization getAuthorization(String username,
String password) throws UnauthorizedException--返回作者(只有一个GetUserId()方法,不返回一个USER,可能是要减少输出量,因为存储在SESSION中的东东只要指明ID即可返回USER。
{
loadAuthorizationFactory();
return factory.createAuthorization(username, password);
}
public static Authorization getAnonymousAuthorization() {--返回匿名作者
loadAuthorizationFactory();
return factory.createAnonymousAuthorization();
}
public abstract Authorization createAuthorization(String username,
String password) throws UnauthorizedException;--具体的创建作者过程
public abstract Authorization createAnonymousAuthorization();--创建匿名登录作者
private static void loadAuthorizationFactory()--创建具体的类工厂
*NOTE1:这里作者用AuthrizationFactory作为用户获得Authriztion的唯一入口,所以,在父类的静态方法中,有关具体的操作都是调用子类的相关方法。