首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >中介者设计模式

中介者设计模式
EN

Stack Overflow用户
提问于 2012-08-21 21:18:01
回答 1查看 334关注 0票数 0

在我的系统中,我有两个类: User和LoginUser类。LoginUser是用户的子级。在2个对象-用户和LoginUser之间,可能存在各种通信(好友请求、照片请求、好友请求接受等)。在LoginUser的成员资格的基础上,有各种安全特权,在这些特权的基础上,将有不同的消息。

对于给定的场景,我应该使用哪种设计模式?我在考虑使用Mediator设计模式。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-22 00:42:18

这并不是一个真正的设计模式,但我会将这两个概念分开:特权和用户信息。

从可读性的角度来看,当我看到一个子类时,我通常会假设还有其他一些互斥的子类。例如,如果我看到一个Animal接口和一个MeatEater子类,我会假设在其他地方有一个VeggieEater子类。事实上,LoginUser是一个子类,所有用户都是LoginUsers,这对我来说很不自然。

从设计的角度来看,你的LoginUser有两个不同的职责:

1)内部用户级别信息,如用户名、邮箱、好友等

2)确定权限

我会试着拆散这一切。比如

代码语言:javascript
复制
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) { // ... }
}

像这样的事情会打破不同的责任。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12055725

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档