在某OA系统中,系统根据对比用户在登录时输入的账号和密码以及在数据库中存储的账号和密码是否一致来进行身份验证,如果验证通过,则取出存储在数据库中的用户权限等级(以整数形式存储),根据不同的权限等级创建不同等级的用户对象,不同等级的用户对象拥有不同的操作权限。现使用简单工厂模式来设计该权限管理模块。
Administrator 类:
public class Administrator extends User
{
public Administrator()
{
System.out.println("创建管理员对象!");
}
public void diffOperation()
{
System.out.println("管理员拥有创建和管理假条权限!");
}
}
Client类:
public class Client
{
public static void main(String args[])
{
try
{
User user;
UserDAO userDao=new UserDAO();
int permission=userDao.findPermission("zhangsan","123456");
user=UserFactory.getUser(permission);
user.sameOperation();
user.diffOperation();
}
catch(Exception e)
{
System.out.println(e.getMessage());
}
}
}
Employee类;
public class Employee extends User
{
public Employee()
{
System.out.println("创建员工对象!");
}
public void diffOperation()
{
System.out.println("员工拥有创建假条权限!");
}
}
Manager 类:
public class Manager extends User
{
public Manager()
{
System.out.println("创建经理对象!");
}
public void diffOperation()
{
System.out.println("经理拥有创建和审批假条权限!");
}
}
User类:
public abstract class User
{
public void sameOperation()
{
System.out.println("修改个人资料!");
}
public abstract void diffOperation();
}
UserDAO类;
public class UserDAO
{
public int findPermission(String userName,String userPassword)
{
if("zhangsan"==userName&&"123456"==userPassword)
{
return 1;
}
else
{
return -1;
}
}
}
UserFactory类;
public class UserFactory
{
public static User getUser(int permission)
{
if(0==permission)
{
return new Employee();
}
else if(1==permission)
{
return new Manager();
}
else if(2==permission)
{
return new Administrator();
}
else
{
return null;
}
}
}