简单来说,Snapshot Diagram就是用来表示程序运行时状态的图。绘制Snapshot Diagram可以让我们对程序的运行有所了解,直观的刻画各类变量状态随时间的变化,便于程序员之间的交流以及解释设计思路。
下面来简述一下如何画出正确的Snapshot Diagram图。
首先来简述一下一些基本概念:
① 对象、引用、数据类型
String name = "Zhw";
其中,"Zhw"是对象,name是引用,String是数据类型。
②基本数据类型、对象数据类型
数据类型分为:基本数据类型和对象数据类型。
首字母大写的即为对象数据类型,反之,为基本数据类型。
其中基本数据类型全为不可变的数据类型;对象数据类型既有可变的又有不可变的。
下面来介绍一下Snapshot Diagram的具体画法:
有向线(带箭头)的线从引用指向对象:
Ⅰ 基本数据类型的对象:
Ⅱ 对象数据类型的对象
需要用圈包围并注明对象的数据类型、值
Ⅲ 抽象数据类型的对象
关于可变与不可变:
Ⅰ 对象:
对于可变的对象,如果需要用圈包围,使用单圈包围。
对于不可变的对象,如果需要用圈包围,使用双圈包围。
Ⅱ 引用:
对于可变的引用,画单线箭头。
对于不可变的引用,画双线箭头。
List的Snapshot Diagram画法:
Set的Snapshot Diagram画法:
Map的Snapshot Diagram画法: