在我的系统中,我有2个类:User和LoginUser类。 LoginUser是User的子级。两个对象之间可能存在各种通信(朋友请求,照片请求者,朋友请求接受等) - 用户和登录用户。在LoginUser的成员资格的基础上,有各种安全权限,并根据这些权限,将有不同的消息。
我应该为给定的场景使用哪种设计模式?我在考虑使用Mediator设计模式。
答案 0 :(得分:1)
这不是一个真正的设计模式,但我会将这两个概念分开:权限和用户信息。
从可读性的角度来看,当我看到一个子类时,我通常会假设还有一些其他互斥的子类。例如,如果我看到一个Animal接口和一个MeatEater子类,我会假设在其他地方有一个VeggieEater子类。 LoginUser是一个子类,而所有用户都是LoginUser的事实让我觉得不自然。
从设计的角度来看,您的LoginUser有2个不同的职责:
1)用户级别信息,如用户名,电子邮件,朋友等
2)确定权限
我会尝试解决这个问题。如
public class User {
// keep info in here
private String username;
private String email;
}
public class Authorization {
// this will determine access
public Authorization(User user) { this.user = user; }
public boolean isAccessAllowed(String someAction) { // ... }
}
这样的事情会破坏不同的责任。