Main Content

类图查看器

创建具有类细节和层次结构的图

自 R2021a 起

说明

类图查看器使您能够创建显示类实现细节和层次结构的图。您可以使用此 App 来探查类结构体并与其他人共享类图。这些图可以包括有关以下各项的详细信息:

  • 类的内部结构,包括属性和方法及其访问属性

  • 类的层次结构,包括命名空间,显示继承关系

您可以使用图形界面或由 matlab.diagram.ClassViewer 定义的命令行 API 来创建类图。

Class Diagram Viewer app

打开 类图查看器

  • MATLAB® 工具条:在 App 选项卡上的 MATLAB 下,点击 App 图标。

  • MATLAB 命令提示符:输入 matlab.diagram.ClassViewer

示例

全部展开

打开类图查看器。在类浏览器窗格中,展开“导入类、命名空间或文件夹”按钮 ,然后选择导入命名空间。输入 matlab.unittest 作为命名空间,然后点击确定unittest 所在的文件夹将显示在类浏览器中。

Class Browser with unittest added

展开 unittest 文件夹并选择 InteractiveTestCase 类。点击工具条中的添加按钮,以将一个代表该类的卡片添加到类图查看器画布中。使用相同的方法添加 TestCase 类。由于 TestCaseInteractiveTestCase 的超类,类图查看器会自动绘制一个从 InteractiveTestCaseTestCase 的箭头来显示这种关系。

TestCase and InteractiveTestCase classes on canvas

类卡顶部的斜纹蓝色边框表示这两个类均为句柄类。图例窗格说明画布上的图形效果和图标表示的意义。

Legend pane

您也可以将项目从类浏览器直接拖到画布上。将 Test 类拖到查看器中。卡顶部的 green plus button 表示 Test 有可查看的超类。

Test class card with green plus button

点击 green plus button 可将该超类添加到图中。从 Test 指向 TestSuite 的箭头表示 TestSuiteTest 的超类。

Test and TestSuite class cards

除了通过拖放在查看器中移动类之外,您还可以使用工具条的缩放和平移部分中的选项来自定义视图,包括:

  • 放大和缩小

  • 使图适应当前屏幕大小

  • 平移

在工具条的视图部分中,选中 Mixins 复选框。此操作不会自动将 mixin 类添加到图中,但随后当您执行任何添加超类的操作时,查看器会将它们添加到显示中。

要添加 Test 的所有超类,请右键点击 Test 类卡,然后选择添加所有超类。现在,CustomDisplay mixin 显示为 Test 的超类,TestSuiteExtension 显示为 TestSuite 的超类。CustomDisplay 的名称为斜体,表示它是抽象类。

CustomDisplay mixin and TestSuiteExtension class cards are visible

添加超类和子类时有两种选择:

  • 添加超类:添加给定类直接从其继承的超类。

  • 添加所有超类:添加给定类直接或间接从其继承的所有超类。在上面的示例中,Test 间接从 TestSuiteExpansion 继承。

  • 添加子类:添加直接从给定类继承的已知子类。

  • 添加所有子类:添加所有直接或间接从给定类继承的已知子类。

注意

MATLAB 可能无法识别给定类的所有现有子类。在这种情况下,请使用类浏览器手动添加任何其他子类。

除了显示类层次结构,您还可以探索类定义本身。通过点击卡中类名称旁边的箭头,展开 Test 类卡。类卡会展开以显示由类定义的属性和方法。从超类继承的属性和方法不会出现在子类卡中。

属性和方法名称旁边的图标标识属性和方法的访问权限级别。例如,锁图标显示 ExternalFixtures 是私有属性。

Test class card with properties visible

选择类卡上的属性或方法还会在检查器窗格中显示访问权限和其他信息。

要查看一个或多个类的源代码,请选择类卡,然后点击工具条中的转至源。源代码文件在 MATLAB 编辑器中打开。

要保存或共享您的图,请使用以下两个选项之一:

  • 点击导出以将图保存为静态图像。

  • 选择保存 > 另存为以创建一个 MLDATX 文件,该文件可以在类图查看器实例中重新打开和进行编辑。

自 R2024a 起

类图查看器可以显示类之间的关联。当使用类验证将一个类属性的类型显式定义为另一个类时,类图查看器可以显示这种关联。

将这两个类保存到您的 MATLAB 路径。

classdef ClassA
    properties
        Property1 ClassB
        PropertySelf ClassA
    end
end
classdef ClassB
    properties
        Property1 double
    end
end

打开类图查看器。在类浏览器窗格中,展开“导入类、命名空间或文件夹”按钮 ,然后选择导入类。输入 ClassA,然后点击确定。对 ClassB 重复此步骤。这两个类都出现在类浏览器中。

Class Browser with ClassA and ClassB added

ClassAClassB类浏览器拖到画布上。通过点击卡中类名称旁边的箭头,展开 ClassA 类卡。类卡会展开以显示由类定义的属性和方法。

ClassA and ClassB cards visible on canvas, ClassA expanded

在工具条的视图部分中,选中关联复选框。此操作将箭头添加到图中,用于任何可识别的关联。在这种情况下:

  • ClassAProperty1 属于 ClassB 类型,因此箭头将 Property1 连接到 ClassB 的类卡。

  • ClassAPropertySelf 属于 ClassA 类型,因此箭头将该属性连接回 ClassA 的主卡。

ClassA with arrows pointing to itself and ClassB

使用关联复选框可以打开和关闭箭头。即使类卡折叠,箭头也会出现。

当使用类验证定义属性时,类图查看器只能识别关联。以这种方式定义时,属性的类将显示在类卡上。有关详细信息,请参阅Property Class Validation。此外,打开关联只会显示当前图中的类之间的连接。例如,如果 ClassB 不在图中,App 不会自动添加它来显示与 ClassAProperty1 的关联。

编程用途

全部展开

matlab.diagram.ClassViewer 打开一个未加载类的类图查看器实例。

matlab.diagram.ClassViewer(Name=Value) 将指定的类添加到类浏览器窗格和画布中。有效的名称-值参量包括:

  • Classes:类名称指定为字符串或对象名称

  • Folders:文件夹名称指定为字符串

  • Namespaces:命名空间名称指定为字符串

有关其他名称-值参量,请参阅 matlab.diagram.ClassViewer。将参量指定为 Name1=Value1,...,NameN=ValueN,其中 Name 是参量名称,Value 是对应的值。

提示

  • 类图查看器是 matlab.diagram.ClassViewer 类的实例。使用类构造函数一次打开多个查看器。

  • 如果 green plus button 出现在两个类之间的箭头上而不是在类卡本身上,则两个连接的类之间的层次结构中还有其他类。点击 green plus button 可添加层次结构中该部分的所有可查看的类。

  • 如果在使用类图查看器期间您更改了类代码,可以通过点击刷新来自动更新图。如果类文件被删除或对 App 不再可用,App 会指示类未同步,但类卡本身不会从图中删除。

版本历史记录

在 R2021a 中推出

全部展开