其他分享
首页 > 其他分享> > c – Enterprise Architect – 从类图中的接口继承方法

c – Enterprise Architect – 从类图中的接口继承方法

作者:互联网

在Enterprise Architect(版本9.2.921)中,我想创建一个类图.我有一个MyInterface类作为接口.所以在EA中我选择了刻板印象<< interface>>并将其标记为抽象.

现在为了简单起见,我的抽象接口定义了一个虚函数.现在我有一个MyChild类,它是我的接口的子类(类MyChild :: MyInterface),它将实现这个功能.

为了在EA中这样做,我创建了一个新类.然后右键单击它 – >高级 – >家长.
作为我选择的类型,然后我选择我的接口类.

在我的类图上,从子到父的箭头是正确的(虚线,在界面方向有空箭头).

现在问题是,我希望EA将我的抽象函数从接口添加到实现类本身.因此,例如,如果我在Interface类中更改/添加/删除虚函数,它会立即在子类中更改.但问题是,该功能不会出现在子类的主体中.

企业Architecht有没有办法做到这一点?

解决方法:

首先,还有另一种绘制连接的方法,您可能会觉得更容易.如果您在图表中选择了该类,您会在课程的上方/右侧看到一个小箭头图标.单击此按钮,拖动到界面并删除,EA将为您提供一组可能的连接器,首先是最相关的连接器.此列表基于源和目标元素类型(在本例中为类和接口)是上下文相关的.

当涉及“覆盖和实现”对话框时,涉及一些细微之处.

如果一个类实现了一个接口,那么该类实际上具有接口指定的操作,尽管它们是隐藏的,即使你没有选择它们来实现(这就是为什么在这个对话框中默认取消选择接口操作的原因).

如果在序列图中使用该类并对其进行调用,您将看到可以在“消息属性”对话框中选择接口定义的操作(选择“显示继承的方法”).如果在界面中重命名操作,则此名称将自动更新.

如果在两个类之间绘制泛化,则会在序列图中获得相同的行为.此外,您可以通过右键单击它,选择“功能可见性”并勾选“显示操作”来选择类继承(通过泛化)操作的显示.请注意,这仅适用于通过概括(来自其他类)而非实现(来自接口)的操作.我认为这是一个错误,但它可能是设计的.

如果确实在“覆盖和实现”对话框中选择了一个操作,则表示您正在复制它. EA将不记得被覆盖的操作来自何处,如果在接口/抽象类中更改它,则不会更新名称.

使用右键单击 – 高级 – 父方法会绕过“覆盖和实现”对话框,但会创建连接器,如您所述.

现在你提到你创建一个类然后设置“接口”构造型.这不是这样做的方式;您应该使用工具箱中的界面符号创建界面.具有“接口”构造型的类与接口不同,我不确定我用这种构造得到的行为.

如果它是您想要的接口,请使用它.另一方面,如果你在谈论一个抽象类,那么Class是正确的,抽象类和具体类都不应该具有“接口”构造型.

另请注意,如果您有想要绘制图表的代码库,EA可能会为您进行反向工程(如果它是C,C#,Java或其他十几种语言).

标签:class-diagram,c,uml,enterprise-architect
来源: https://codeday.me/bug/20190826/1730326.html