在我的系统中,我有两个类: User和LoginUser类。LoginUser是用户的子级。在2个对象-用户和LoginUser之间,可能存在各种通信(好友请求、照片请求、好友请求接受等)。在LoginUser的成员资格的基础上,有各种安全特权,在这些特权的基础上,将有不同的消息。
对于给定的场景,我应该使用哪种设计模式?我在考虑使用Mediator设计模式。
发布于 2012-08-22 00:42:18
这并不是一个真正的设计模式,但我会将这两个概念分开:特权和用户信息。
从可读性的角度来看,当我看到一个子类时,我通常会假设还有其他一些互斥的子类。例如,如果我看到一个Animal接口和一个MeatEater子类,我会假设在其他地方有一个VeggieEater子类。事实上,LoginUser是一个子类,所有用户都是LoginUsers,这对我来说很不自然。
从设计的角度来看,你的LoginUser有两个不同的职责:
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) { // ... }
}像这样的事情会打破不同的责任。
https://stackoverflow.com/questions/12055725
复制相似问题