2016-07-26 31 views
0

Ich habe folgende Klassen:Correct UML-Diagramm für Dependency Injection

public interface IRule { void Execute(int i); } 
public interface IRule1 : IRule { } 
public interface IRule2 : IRule { } 
public interface IRuleExecutor { void Execute(int i) } 

public class Rule1 : IRule1 { public void Execute(int i) { } } 
public class Rule2 : IRule2 { public void Execute(int i) { } } 

public class RuleExecutor : IRuleExecutor 
{ 
    private ICollection<IRule> allRules; 

    public RuleExecutor(ICollection<IRule> rules) 
    { 
     this.allRules = rules; 
    } 

    public void Execute(int i) { } 
} 

Was ist der richtige Weg, um diese Klassen angezeigt wird (vor allem die Beziehung zwischen RuleExecutor und den Regeln) in einem UML-Klassendiagramm?

Vielen Dank im Voraus

Antwort

2

Es gibt mehrere Möglichkeiten, aber das ist, wie ich es modellieren würde:

UML diagram

ich modelliert haben nicht explizit ICollection. Es wird implizit durch die Multiplizität "*" auf der Seite von IRule repräsentiert. Eine Regel kann mehreren RuleExecutoren zugeordnet werden, also habe ich auch einen Stern auf die Seite von RuleExecutor gesetzt. Der Verband ist aus RuleExecutor gerichtet iRULE, weil RuleExecutor einen Verweis auf iRULE hat, aber nicht umgekehrt.

+0

Danke das ist, wie ich es getan habe, würde :-) – xeraphim

+0

Ich habe soeben „-allRules“. –

+0

Ich habe eine Frage: Warum ist die Linie von Rule1 zu IRule1 punktiert, aber die Linie von IRule1 nicht iRULE? – xeraphim