【问题标题】:Understanding a small UML representation of interfaces, class and inheritance?了解接口、类和继承的小型 UML 表示?
【发布时间】:2013-09-26 18:01:00
【问题描述】:

我需要在代码中实现这个 UML。有人可以帮我理解关于这个 UML 表示的 2 个问题吗?这是一个Java编程类。

练习说明:

StringFilter 是客户端可以添加几个特定单词过滤器的类,由接口 Filter 表示。

StringFilter 不依赖于任何特定的过滤器。例如,ContainsWord 过滤器是库提供的标准过滤器,而 ContainsText 和 LengthBelow 是客户端开发的。

我无法理解 UML 中的关系。

--

第一个问题:

据我了解,StringFilter 是一个类。而StringFilter,实现了接口Filter。这是真的?如果在代码中,我要定义StringFilter实现Filter,对吗?

--

第二个问题:

ContainsWord 是一个类,它实现了在接口Filter 中定义的accept() 方法。这是真的? ContainsWord 是否应该实现过滤器

--

我无法理解究竟是什么实现了什么。从 ContainsWord 到接口 FilterStringFilter 到接口 Filter 的关系让我有些困惑。

谢谢!

【问题讨论】:

    标签: java class inheritance interface uml


    【解决方案1】:

    1) StringFilter 没有实现 FilterStringFilter 使用 Filter 的实例来完成它的工作(例如,addFilter 方法)。 “实现”(在 UML 演讲中我认为是“实现”)线是虚线。

    2) 这正是图表所代表的。 ContainsWordFilter 的实现(UML -> 实现),因此必须实现accept

    【讨论】:

    • 我同意这个答案。另外,如果它对您有任何帮助:从 StringFilter 到 Filter 的箭头,在 StringFilter 末端带有菱形,表示 StringFilter '包含'Filter;该行过滤器端的星号表示它包含多个。因此,任何带有虚线且带有指向 Filter 的空心箭头的东西都可以作为 StringFilter 的 addFilter() 方法的参数。
    • @SJuan76 更准确地说。图中有 6 条虚线,其中只有 3 条表示实现关系。关键点是线/箭头的空心三角形末端。
    【解决方案2】:
    1. 没有。 StringFilter 使用 Filter 实例来完成任务。因此FilterStringFilter之间的关系是实现。箭头侧实例由菱形侧类使用。例如,

      Class StringFilter{ 过滤器过滤器;...}

    2.是的。 ContainsWord 类将实现Filter 接口并提供accept 方法的实现。ContainsTextLengthBelow 类相同

    【讨论】:

      猜你喜欢
      • 2016-08-09
      • 1970-01-01
      • 2012-06-10
      • 1970-01-01
      • 2023-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多