我在一杯水中迷失了自己。我正在做一个项目,我想管理不同类型的用户:注册用户、访客、官方和管理员。显然,官方和管理员都是注册用户。
因此,我创建了 4 个类,其中一个是抽象 User。
- 用户(摘要)
- RegisteredUser 扩展了 User
- OfficerUser 扩展了 RegisteredUser
- UnregisteredUser 扩展了 User
- AdminUser 扩展了 User
- 文件
在 User 中调用具有属性(日期、类型等)的 Document 类(用于站点注册)。
管理员用户可以通过面板指定OfficerUser用户。
我的问题是,我怎样才能记忆起OfficerUser中的Document类?我基本上必须将 RegisteredUser 数组移动到具有相同用户名的 OfficeUser 数组。
谢谢,我附上了各个类的代码。
public class AdminUser extends User implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
public AdminUser(){}
public AdminUser(String username, String password, String email)
{
this.username = username;
this.password = password;
this.email = email;
}
public class UnregisteredUser extends User
{
/**
*
*/
private static final long serialVersionUID = 1L;
private static UnregisteredUser unregistered;
private UnregisteredUser(){ }
public static UnregisteredUser get()
{
if(unregistered == null)
{
unregistered = new UnregisteredUser();
}
return unregistered;
}
}
public class Documento implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
protected String type;
protected String number;
protected String sender;
protected String date_sender;
protected String date_limit;
public Documento (String type, String number, String sender, String date_sender, String date_limit) {
this.type = type;
this.number = number;
this.sender = sender;
this.date_sender = date_sender;
this.date_limit= date_limit;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
public String getSender() {
return sender;
}
public void setSender(String sender) {
this.sender = sender;
}
public String getDate_sender() {
return date_sender;
}
public void setDate_sender(String date_sender) {
this.date_sender = date_sender;
}
public String getDate_limit() {
return date_limit;
}
public void setDate_limit(String date_limit) {
this.date_limit = date_limit;
}
public class OfficerUser extends RegisteredUser implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
public OfficerUser() {}
protected Documento doc;
public OfficerUser (RegisteredUser user)
{
this.username = user.username;
this.password = user.password;
this.email = user.email;
this.name = user.name;
this.surname = user.surname;
this.fiscal_code = user.fiscal_code;
this.telephone = user.telephone;
this.doc =
}
这是 MapDB 数据库的一部分,我正在使用 GWT 开发 eclipse。
public ArrayList<User> nominateOfficer( String userName){
RegisteredUser normalOfficer = (RegisteredUser) userMap.get(userName);
User officer = new OfficerUser(normalOfficer);
userMap.replace(userName, normalOfficer, officer);
this.db.commit();
return getRegistered();
}
最佳答案
也许您可以将其建模为 Office 用户和管理员是角色而不是用户。
因此,角色在某种程度上是特殊的,它指定用户可以执行的操作,并且您可以将不同的角色附加到不同的用户,而无需创建用户类型。
这样,您的建模关系就非常灵活,因为您可以向用户添加更多角色,而无需创建更多类。
关于java - 如何在其他类中传递类的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53444992/