【问题标题】:UML Class Diagram model : same classes in different packagesUML 类图模型:不同包中的相同类
【发布时间】:2023-04-01 03:46:01
【问题描述】:

本期为纯设计造型

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

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

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

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

您能建议哪个是最好的解决方案,还是请告诉我其他好的解决方案?

【问题讨论】:

    标签: class uml class-diagram staruml


    【解决方案1】:

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

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

    选择将取决于具体情况。

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

      • 另一种选择是显示导入包的完全限定名称,例如aPackage.MyClass 包内other。而且我不知道UML中是否有别名功能,但如果能有aPackage.MyClass as APackageMyClass会更好。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-25
      • 2019-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-22
      相关资源
      最近更新 更多