对于我必须要做的软件设计项目,我选择了Eclipse Platform作为框架。意思是我有很多扩展点要实现。
但是,我在UML类图中指定这些扩展点时遇到问题。那么如何模拟类属于类图中的扩展点的事实呢?
或者类图是错误的地方吗?如果是,那么指定我实施的扩展点的最佳位置在哪里?
作为参考,我正在与Papyrus进行UML建模。我已经有了应用程序的工作原型,所以它只是创建图表。
干杯
答案 0 :(得分:2)
说到Eclipse插件,我宁愿选择组件图而不是类图。然后,您可以将扩展点建模为端口,将它们的合同建模为接口(那些棒棒糖)。
如果您希望将类扩展点指定为具有特殊构造型(或关键字)的接口,那么也可以。
关于实现扩展点的类,您可以使用对组件的依赖关系,或者(在第二个解决方案中)使用接口实现。
答案 1 :(得分:1)
eclipse扩展点就像一个接口:它声明了一组必须实现的属性。
例如,org.eclipse.ui.editors
扩展点声明要实现此扩展点,您必须提供:
在UML中没有任何确切的说法,因为扩展点既不是接口也不是对象,但您可以通过向模型添加构造型来建模,例如<<extension_point>>
(您可以阅读更多关于构造型here),并在图中创建一个类(例如org.eclipse.ui.editors
),它具有所有这些属性及其所需类型(在此示例中,所有属性都是字符串,但class
除外属于org.eclipse.ui.IEditorPart
)类型。
在此之后你可以创建另一个刻板印象,比如<<extension_point_implementation>>
和一个具有这种刻板印象的新类。这个类使用<<extension_point>>
类中的实现链接进行连接,然后将所有属性的值设置为您正在实现的属性。
请注意,这不是“纯粹的”UML,因为您正在定义一个具有添加语义的新域,但我认为这将是一种很好且易于理解的方式来模拟您想要的内容。
答案 2 :(得分:0)
从某种意义上说,扩展点是扩展点,实例是类;扩展点定义扩展的可能属性,每个扩展包含符合扩展点的具体属性。
答案 3 :(得分:0)
只需反转java代码并添加注释即可。它会完成这项工作。