<access>实现包图时,使用 <> 和<>有什么区别<import>?



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

导入Java.swing.*;

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

感谢

导入一个包相当于导入它的所有公共元素。因此,导入的可见性可以认为是元素(导入的元素)的可见性。下面是C#中的一个例子,描述了"访问"one_answers"导入"之间的区别。很容易将代码映射到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
}
}

你肯定不会。

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

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

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

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

根据Visual Paradigm Uml帮助,它们非常接近,只有"如果可见性是公共的,则关键字<<import>>显示在虚线箭头附近;否则,关键字<<access>>显示以指示私有可见性。">

最新更新