【问题标题】:Visual Studio UML Class Diagram & Modeling of Generic Types通用类型的 Visual Studio UML 类图和建模
【发布时间】:2013-03-01 07:47:22
【问题描述】:

我需要建模一个继承自基本泛型类的具体泛型类。首先,见下文:

ActivityFacade 应该这样实现:

public class ActivityFacade : BaseFacade<Activity, int>
{
}

如何在 VS2012 UML 类图中对此进行建模?看图,很明显ActivityFacade继承自BaseFacade,但不明显的是它传入的泛型类型参数,即:Activityint

【问题讨论】:

    标签: visual-studio uml modeling class-diagram


    【解决方案1】:

    您需要添加一个新的绑定类 (BaseFacade &lt;Activity, int&gt;) 使用模板绑定连接器将其连接到您的参数化类 (BaseFacade&lt;T, TKey&gt;),然后专门化您的绑定类的子类 (ActivityFacade)。

    来自 OMG UML 规范

    “模板是一个参数化的元素......用于使用 TemplateBinding 关系生成其他模型元素。模板签名的模板参数指定将由绑定中的实际参数(或默认值)替换的形式参数。 "

    更新:

    我包含的图表是使用 EA 绘制的。相同的概念可以在 Visual Studio UML 工具中建模。请参阅 msdn 中的“Template types: To use a template type”部分。

    【讨论】:

    • @JohnSaunders 重要的是概念而不是工具。问题中的图表是错误的,因为 ActivityFacade 不应继承自 BaseFacade,而应继承自 BaseFacade。在这里,我展示了在 UML 中建模泛型的概念。我敢肯定,一旦 OP 知道 TemplateBinding,他们就可以在 Visual Studio 中找到它。
    • 问题是,“我如何在 VS2012 UML 类图中对此进行建模”。如果您可以使用 VS2012 对其进行正确建模,那么您应该发布该解决方案。否则,您的回答与此问题无关。
    • @JohnSaunders 我相信这是一个 UML 问题而不是一个工具问题,我的回答可能会对 OP 有所帮助。我不明白你的做法。
    • 我相信你读错了这个问题。 OP 清楚地问:“我如何在 VS2012 UML 类图中对此进行建模?”您的问题回答了他如何在 Sparx EA 中对此进行建模,该工具支持这种特定的 UML 表示法。 VS2012 似乎没有这个符号,所以答案是,“你不能在 VS2012 UML 类图中对此进行建模”。
    • @JohnSaunders,我感谢您希望保持答案的相关性,但在这种情况下,jurgenreza 确实给了我所需要的东西.. 尤其是在更新时。请注意,有时 OP 并不确切知道要要求什么……仅仅因为我在 VS 中说过并不意味着我确实知道如何在其他一些 UML 工具中做到这一点。在这种情况下,我提到了 VS,因为这就是我正在使用的工具,并且想知道如何使用该工具进行操作。但总体上给出的有关 UML 的任何提示确实非常相关。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-16
    • 2013-11-02
    • 2011-06-14
    • 1970-01-01
    • 2010-12-13
    相关资源
    最近更新 更多