正确的依赖注入 UML 图

Correct UML diagram for dependency injection

我有以下 classes:

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) { }
}

在 UML class 图中显示这些 classes(尤其是 RuleExecutor 和规则之间的关系)的正确方法是什么?

提前致谢

有多种选择,但这是我的建模方式:

我还没有为 ICollection 明确建模。它由 IRule 一侧的多重性“*”隐式表示。一个规则可以与多个 RuleExecutor 相关联,所以我也在 RuleExecutor 旁边放了一个星号。 该关联是从 RuleExecutor 指向 IRule,因为 RuleExecutor 有对 IRule 的引用,但反之则不行。