在 Enterprise Architect 中我修改了一个接口,如何更新实现类?

在 Enterprise Architect 中我修改了一个接口,如何更新实现类?

我在类模型中创建了一个接口。此接口有两个方法,A 和 B,方法 A 接受一个参数 (a),方法 B 不接受参数 (目前)。此外,我还创建了一个实现此接口的类,并重写了这两个方法。

讨论模型后,方法 B 现在也应该接受参数 (b),因此我修改了接口以反映这一变化。但是实现此接口的类不会自动更新。对于一个类,可以通过重新创建接口之间的链接来添加方法,指定应实现哪种方法并再次删除此链接。然后还必须删除旧方法签名。如果有多个类实现修改后的接口,这将是一项艰巨的工作,更不用说容易出错了。

有人知道如何让整个类模型更新这种类型的依赖关系吗?

答案1

我也搜索过这个问题的答案,但除了你的帖子之外,我没有找到任何东西。我在 EA 论坛上发布了一个问题。

如果只是为了图表目的,有 1 种可能的解决方法(但有点麻烦):

  • 将您的接口作为具有 <<interface>> 构造型的(抽象)类添加到图表中
  • 将您的类作为具有 <<implementingClass>> 构造型的类添加到图表中
  • 添加概括从类到接口的关系,不要选中覆盖和更新中的任何复选框
  • 隐藏连接器
  • 添加实现类与接口的关系
  • 右键单击类 > 功能可见性 > 选中“显示操作”复选框

因此

  • 抽象类看起来像一个界面在图上
  • 实现类将显示继承的操作
  • 在向界面添加操作时,课程将更新
  • 在修改界面上的操作时,课程将更新

唯一的问题是,在代码生成期间生成了一个抽象类而不是接口。

答案2

选择要刷新的类别,然后按Ctrl + Shift + o

关联给你详细的解释。

在 Enterprise Architect 中,您可以自动覆盖来自父类和已实现的接口的方法。

选择一个具有父级或已实现接口的类,然后选择元素 | 高级 | 覆盖和实现菜单选项。

在覆盖操作/接口对话框中,选中要自动覆盖的操作/接口,然后单击确定按钮。Enterprise Architect 会在您的子类中生成等效函数定义。

您可以配置 Enterprise Architect,使其每次在类之间添加泛化或实现连接器时都显示此对话框,并查看它们可能要覆盖/实现的操作/接口。从选项对话框的链接页面执行此操作(选择工具 | 选项 | 链接菜单选项)。

相关内容