这是抽象工厂的方法,主要是用于用户的登录方法。如果登录成功,就可以将用户的信息存在于一个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的唯一入口,所以,在父类的静态方法中,有关具体的操作都是调用子类的相关方法。

|