📄 userfactory.java
字号:
package com.ntsky.bbs.service;import java.util.*;import org.apache.log4j.Logger ;/** * <p>Title: Ntsky OpenSource BBS</p> * <p>Description: 用户处理的桥接</p> * <p>Copyright: Copyright (c) 2004</p> * <p>Company: WWW.FM880.COM</p> * @author 姚君林 * @version 1.0 */public abstract class UserFactory { private final static Logger logger = Logger.getLogger(UserFactory.class); private static Object initLock = new Object(); private static UserFactory factory = null; private final static String CLASSNAME = "com.ntsky.bbs.service.db.DBUserFactory"; //protected保证继承类可以访问其方法或变量 public User getCreateUser(User user){ getInstance(); return createUser(user); } /** * 更新用户角色 * @param usrRole String * @param usrName String */ public abstract void upUserRole(String usrRole ,String usrName); public abstract void upRepUserInfo(String usrName); /** * 用户登陆 * @param user User * @return User */ public abstract User userLogon(User user); /** * 更新体力值 * @param usrName String */ public abstract void upUserWealthDre(String usrName); /** * 由cookie获得该用户的信息 * @param user User * @return User */ public abstract User userInfo(int usrId); /** * 用户登陆时侯更新登陆次数和最后登陆时间 */ public abstract void upUserLoginInfo(String type,String value); /** * 由用户名显示用户信息 * @param user User * @return User */ public abstract User userInfo(String usrName); /** * 创建用户 */ protected abstract User createUser(User user); /** * 用户添加信息时候更新信息 * @return User */ protected abstract void upUserInfo_AddTopic(String usrName); /** * 获取最新注册的用户 */ protected abstract User getNewestUser(); /** * 修改用户 */ /** * 获取已有数据 */ protected abstract boolean editUser(User user); /** * 删除用户(改变用户状态) */ public abstract void delUser(String usrId); /** * 锁定用户 * @param usrName String * @return User */ public abstract void changeUserState(String usrId); /** * 解锁用户 * @param usrId String */ public abstract void unLockUser(String usrId); /** * 查询用户是否存在判断(返回整个用户) */ protected abstract User selectUser(String usrName); /** * 更新用户角色 */ protected abstract void upUserRole(int i,String usrRole,int usrId); /** * 设置帖子属性 eg:(精华帖) * @param state String * @param usrName String */ public abstract void upUserState(String state,String usrName); /** * 根据角色查询用户 */ protected abstract List selArrayUser(int usrRole); /** * 获取UserFactory实例,使用了简单工厂模式 * @return */ public static UserFactory getInstance() { if (factory == null) { //使用synchronzed保证一次只有一个实例能访问DBUser对象 synchronized (initLock) { if (factory == null) { try { //创建DBUser的一个实例 Class c = Class.forName(CLASSNAME); factory = (UserFactory) c.newInstance(); logger.info("获取数据库处理的实例成功"); } catch (Exception e) { System.err.println( "UserFactory Exception loading class: " + e.getMessage()); e.printStackTrace(); } } } } return factory; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -