我说下我的设想,用struts和hibernate
这里面应该有个User类作为持久化对象,
class User{
private long id; //自动生成ID
private String type;//用户类型
private int record; //插入的数值
.......//一大堆get,set方法
if(type.equals("high")) //高级用户
record*=Constants.HIGH; //constants类包装了所要乘的倍数,以后扩展很容易
if(type.equals("normal"))
record*=Constants.NORMAL;
}
然后定义User.hbm.xml文件(楼主熟悉hibernate的话就很简单的,我只大概说下个人的思路)
接下来是一个DAO接口,处理一般的查找,删除,更新等等
public interface UserDao {
public User getUserById(Long id);
public Collection findAll();
public void updateItem(User u);
}
然后是实现这个接口的UserDAOImpl
public class UserDaoHibernateImpl implements UserDao extends HibernateDaoSupport {
public Item getUserById(Long id) {
return (Item) getHibernateTemplate().load(User.class, id);
}
public Collection findAll() {
return (List) getHibernateTemplate().find("from User");
}
public void updateItem(User u) {
getHibernateTemplate().update(u);
}
}
然后是UserManager来处理具体的事务,大概应该是这样public class UserManager {
private UserDao userDao;
public void setUserDao(UserDao userDao) { this.UserDao = UserDao;}
public Bid loadUserById(Long id) {
itemDao.loadUserById(id);
}
public Collection listAllUsers() {
return UserDao.findAll();
}
........//其他以后想加入的业务逻辑
}
通过这4个类,我想该可以满足你的要求了,这也是俺从别的地方学来的,汗
这里面应该有个User类作为持久化对象,
class User{
private long id; //自动生成ID
private String type;//用户类型
private int record; //插入的数值
.......//一大堆get,set方法
if(type.equals("high")) //高级用户
record*=Constants.HIGH; //constants类包装了所要乘的倍数,以后扩展很容易
if(type.equals("normal"))
record*=Constants.NORMAL;
}
然后定义User.hbm.xml文件(楼主熟悉hibernate的话就很简单的,我只大概说下个人的思路)
接下来是一个DAO接口,处理一般的查找,删除,更新等等
public interface UserDao {
public User getUserById(Long id);
public Collection findAll();
public void updateItem(User u);
}
然后是实现这个接口的UserDAOImpl
public class UserDaoHibernateImpl implements UserDao extends HibernateDaoSupport {
public Item getUserById(Long id) {
return (Item) getHibernateTemplate().load(User.class, id);
}
public Collection findAll() {
return (List) getHibernateTemplate().find("from User");
}
public void updateItem(User u) {
getHibernateTemplate().update(u);
}
}
然后是UserManager来处理具体的事务,大概应该是这样public class UserManager {
private UserDao userDao;
public void setUserDao(UserDao userDao) { this.UserDao = UserDao;}
public Bid loadUserById(Long id) {
itemDao.loadUserById(id);
}
public Collection listAllUsers() {
return UserDao.findAll();
}
........//其他以后想加入的业务逻辑
}
通过这4个类,我想该可以满足你的要求了,这也是俺从别的地方学来的,汗
public abstract class UserType { public int getBusinessNumber();
}
public abstract class Stratege {
public int getWhatYouNeed(UserType user); //根据用户类型来返回需要的倍数之类。今后的具体的业务边了就写几个Stratege的子类。例如:public class Stratege1 extends Stratege {
public int getWhatYouNeed(UserType user) {
return 2 * user.getBusinessNumber;
}
}
变量引用的时候用UserType,和Stratege。具体要用什么策略的时候就用其子策略来new 一个对象。不知道你需要的是不是这个意思??:)