Import 使用<&书信电报;访问>&燃气轮机;及<&书信电报;进口>&燃气轮机;在实现包图时?

Import 使用<&书信电报;访问>&燃气轮机;及<&书信电报;进口>&燃气轮机;在实现包图时?,import,uml,package,diagram,Import,Uml,Package,Diagram,我们在我大学的一个模块中介绍了UML图,并简要介绍了包图。我理解,在包关系图中,当两个包之间存在连接(或箭头)并且标记为import时,这意味着目标包的内容被添加到源的公共名称空间中,而access会将其添加到私有命名空间,并且在第三个包导入原始源包时无法重新导出。我的问题是如何在代码中实现导入和访问?例如,使用Java 导入Java.swing.* 据我所知,没有访问关键字,对吗 谢谢你不必了 关于将UML构造与特定语言中的源构造相关联的问题通常是没有意义的。Java不是世界上唯一的编程语言,

我们在我大学的一个模块中介绍了UML图,并简要介绍了包图。我理解,在包关系图中,当两个包之间存在连接(或箭头)并且标记为import时,这意味着目标包的内容被添加到源的公共名称空间中,而access会将其添加到私有命名空间,并且在第三个包导入原始源包时无法重新导出。我的问题是如何在代码中实现导入和访问?例如,使用Java

导入Java.swing.*

据我所知,没有访问关键字,对吗


谢谢

你不必了

关于将UML构造与特定语言中的源构造相关联的问题通常是没有意义的。Java不是世界上唯一的编程语言,UML也不是很擅长记录源代码

UML处理抽象,而源代码是一个实现,因此是具体的。为了弥补这一差距,您需要一个UML的改编(“概要”),它指定了如何表示每个源结构,并且基本上没有任何通用语言的标准概要

相反,不同的工具供应商选择如何表示支持正向和/或反向工程的语言的各种源结构。在工具X中,访问和导入刻板印象可能对语言Y有任何意义,也可能没有任何意义;Java包很可能由UML类表示


因此,这个问题实际上只能在特定工具和特定语言的上下文中得到回答。

根据可视化范例Uml,它们非常接近,只是“如果可见性是公共的,则关键字显示在虚线箭头附近;否则,关键字显示为表示私有可见性。”

导入一个包相当于导入它的所有公共元素。因此,导入的可见性可以看作是元素(导入的元素)的可见性。 下面是一个C#中的示例,描述了“访问”和“导入”之间的区别。将代码映射到Java很容易:

namespace Logger
{
  public class FileLogger
  {
     public void LogTimeToFile(string fileName, string time)
     {
       //....
     }
  }
}

namespace ServerTime
{
  public class TimeProvider
  {
     public string GetTime()
     {
       //....
     }
  }
}

namespace ServerTimeLog
{
  public class Logger
  {
    private Logger.FileLogger logger; // Logger is access but not imported
    public  ServerTime.TimeProvider timeProvider; // ServerTime is imported

    public void LogCurrentTime()
    {
       logger.LogTimeToFile("c:\\log.txt", timeProvider.GetTime());
    }
  }
}

namespace TaskLog
{
  ServerTimeLog.Logger serverTimeLogger;

  public void SomeMethod()
  {
      // serverTimeLogger.logger ----> Inaccessible because it was accessed not imported
      // serverTimeLogger.timeProvider ----> Accessible because it was imported
  }
}

具体答案,并扩展到多种语言。谢谢。事实上,这是一个很大的不同:访问内部和访问公共接口在耦合方面有很大的变化。谢谢你的推荐:)