3

本期为纯设计造型

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

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

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

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

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

4

2 回答 2

5

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

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

选择将取决于具体情况。

于 2017-08-07T11:56:24.570 回答
4

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

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

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

在此处输入图像描述

于 2017-08-07T12:33:36.297 回答