Dans ma couche logique, j'ai besoin de vérifier les autorisations pour une grande variété d'actions. Certaines actions sont génériques mais certaines sont hautement spécialisées. Chaque action possède une hiérarchie d'autorisations correspondante évaluée avant l'exécution de l'action. J'ai jeté des idées d'architecture dans ma tête mais je n'en ai pas trouvé une solide qui, je pense, sera extensible, simple et élégante.Actions, autorisations et architecture
Le code actuel ressemble à ceci:
public class LogicObject
{
public void Add()
{
Check Add Permission
Perform
}
public void Update()
{
Check Update Permission
Perform
}
}
Le problème avec cette architecture est que, d'abord il est pas vraiment tout ce qui extensible, et le second, il ne me permet pas de vérifier l'autorisation sans effectuer l'action.
Une autre idée que je devais était d'avoir quelque chose comme ceci:
public class AddAction : IAction
{
public bool IsPermitted;
public void Perform();
}
public class LogicObject
{
public IAction AddAction {get { return new AddAction(); } }
}
J'aime cette architecture mieux, mais je ne suis pas tout à fait mis là-dessus. Cela semble un peu hokey. Je ne peux pas imaginer que ce type d'architecture soit unique. Quels sont quelques exemples d'une meilleure façon de faire cela?
Apparemment, j'aurais dû lire Amitay Dobo complètement avant de poster. Vu le code java dans le premier exemple et sauté sur le reste. Ma faute. – thaBadDawg