Snapshot Diagram可以描述程序运行时的内部状态。
画Snapshot Diagram不仅能够让我们对程序的运行有所了解,而且还能加强我们对一些基本概念的认识和理解,如:基本数据类型、对象数据类型、不可变值等等。
同时Snapshot Diagram能够更加直观的向我展示值得改变以及引用的改变之间的关联,和具体实现。
使用Snapshot Diagram便于程序员之间的交流、便于刻画各类变量随时间变化、便于解释设计思路。
“——当为一个变量或者变量域赋值的时候,其实是在改变变量指针的指向,将变量指向了一个不同的值。
——当改变一个可变值的时候,例如数组和list,其实是在改变值里面的引用。”
(摘自博客园)
对于基本类型的值,使用单线箭头指向实际值,不需要表明数据类型。
对于对象的值:
如果是可变对象,使用单线椭圆,椭圆内写明对象的类型及对象内的值。
如果是不可变对象,使用双线椭圆,椭圆内写明对象的类型及对象内的值。
如果是对象的不可变引用(final标记),使用双线箭头。eg:id
如果是对象的可变引用,使用单线箭头。eg:age