Class UML类图模型:不同包中的相同类

Class UML类图模型:不同包中的相同类,class,uml,class-diagram,staruml,Class,Uml,Class Diagram,Staruml,这个问题是一个纯粹的设计建模 我有两个包,这些包中应该嵌入具有相同名称的不同类 如果我在不同的包中有相同的类,那么好的设计解决方案是什么 我阅读过基于编码的不同解决方案,例如: 1-在包之间使用“导入”依赖关系以避免冗余类 2-在其他包中创建类的实例,从而允许在不同包中具有相同名称的类 3-完全限定其中一个类名 你能建议哪一个是最好的解决方案,或者告诉我其他好的解决方案吗?当类是不同的包时,你可以对它们使用相同的名称。包是一个名称空间,因此此类类的完全限定名将不同。现在,如何访问该类取决于您当前

这个问题是一个纯粹的设计建模

我有两个包,这些包中应该嵌入具有相同名称的不同类

如果我在不同的包中有相同的类,那么好的设计解决方案是什么

我阅读过基于编码的不同解决方案,例如:

1-在包之间使用“导入”依赖关系以避免冗余类 2-在其他包中创建类的实例,从而允许在不同包中具有相同名称的类
3-完全限定其中一个类名


你能建议哪一个是最好的解决方案,或者告诉我其他好的解决方案吗?

当类是不同的包时,你可以对它们使用相同的名称。包是一个名称空间,因此此类类的完全限定名将不同。现在,如何访问该类取决于您当前在哪个包中。无论何时在包含类的包之外(通过导入/访问直接导出),都必须使用完全限定名以避免歧义

如果类别实际上相同,您可以: -将它放在一个更适合它的包中,只需从另一个包中访问它(标准方法,可能适用于所有公共类) -将它放在其中一个包中(如果出于某种原因它更适合那里),然后将它导入到另一个包中(通过元素或包导入) -将其放入附加包(例如UTIL)中,并将其导入两个包


选择将取决于具体情况。

如果它是同一个类,则应在一个包中定义它,并在另一个包中“重用”它

一个完整的UML建模工具应该能够在另一个包中拖放现有的类

该工具应该能够指示您正在使用另一个包中的类


另一种选择是显示导入包的完全限定名称,例如包内的
other
中的
apapackage.MyClass
。我不知道UML中是否有别名功能,但如果能够将
aPackage.MyClass作为APackageMyClass
,那就更好了。