Design patterns 权限的设计模式

Design patterns 权限的设计模式,design-patterns,web,Design Patterns,Web,我想建立一个有几种不同类型用户的网站,例如: 管理员-可以在站点上执行所有操作 注册用户-可以在他的页面上做任何事情 未注册用户-只能查看网站 有适合这种情况的设计模式吗?它将如何应用到我的场景中?设计模式不是解决问题的灵丹妙药。它们是将合理的软件工程实践应用于代码设计的一种尝试和测试的方法。这是一个很有价值的问题,但也许你可以看看状态设计模式。如果用户只有读取权限,则加载只读状态类。当用户具有写访问权限时,请使用write state类。如果用户执行的每个操作都可以映射到URI,那么您可以

我想建立一个有几种不同类型用户的网站,例如:

  • 管理员-可以在站点上执行所有操作
  • 注册用户-可以在他的页面上做任何事情
  • 未注册用户-只能查看网站

有适合这种情况的设计模式吗?它将如何应用到我的场景中?

设计模式不是解决问题的灵丹妙药。它们是将合理的软件工程实践应用于代码设计的一种尝试和测试的方法。

这是一个很有价值的问题,但也许你可以看看状态设计模式。如果用户只有读取权限,则加载只读状态类。当用户具有写访问权限时,请使用write state类。

如果用户执行的每个操作都可以映射到URI,那么您可以拥有一个安全层或使用可以配置URI到角色映射以允许访问的框架

如果是在行为层面,您可能可以在这里使用代理设计模式。当您希望基于安全检查快速失败时,它将代理完整对象的实现。 但是,如果对象对于不同的用户的行为不同,则可以对不同的方法使用decorator实现


如果你想得到一个不同版本的对象,它的结构也可能会因不同的角色而改变,那么就不能使用一系列的访问者。访问者模式可能适用于此。

取决于您使用的编程语言和框架。