求一模式

03-12-13 peter207

有2个类User,Workshop,

程序启动时,我想把数据库中所有的user,workshop都放入内存,于是新建两个类UserGroup,WorkshopGroup,内部有一个Vector私有字段,存放User和Workshop;

public class UserGroup{

private Vector users;

public UserGroup(){

users=new Vector();

}

public void add(User user){

users.add(user);

}

public User getUserById(String id){

for(int i=0;i<users.size();i++){

if((User)users.get(i).equals(id)){

return (User)users.get(i);

}

}

}

}

public class WorkshopGroup{

...//类似UserGroup

}

但是,如果这样的类太多,就会新建很多**Group类,而且代码相似,有没有设么方法可以避免这种情况?

banq
2003-12-16 21:52

可以使用Visitor模式.

使用一个类,如group,其中有一个集合,将User或WorkShop此类数据放入其中,需要使用时,实现类型转换或使用Vistor模式.

fiddle
2003-12-17 18:18

你需要的就是一个对象缓存或者对象池

再加上几个工具类避免频繁的类型转换而已