软件构造——代码快照图

代码快照图属于软件多维视图中的运行时视图、时刻视图、代码视图。
快照图表示程序运行时的内部状态——它的堆栈(正在进行的方法及其本地变量)和堆(当前存在的对象)。
代码快照图中最简单的表示就是那些程序中的变量。只需要用一个箭头指向一个值即可。如下图所示:

int i = 3

在这里插入图片描述
**稍微复杂一些的是对象表示,需要用一个圈圈住,圆圈里面写上类名。代码快照图中的不可变类型需要用双圈表示,可变类型用单圈(或者虚线?MIT课件里写的是虚线)表示****例如:

String s = “hello”;

在这里插入图片描述
用final修饰的变量,表示不可变的引用。在代码快照图中用双线表示。例如:

final int n = 5;

在这里插入图片描述
以上,是代码快照图的基本组成,对于复杂对象,可以将这些表示进行组合。例如:

Point pt = new Point(5, -3);

在这里插入图片描述
此外,代码快照图是非常灵活的。关注点不同可以有不通的画法。例如,对于String s = “hello”;如果关注值为"hello",则用第一中表示,第二种表示则全面显示了信息,如果只关注其类型是String,则可以使用第三种表示。
在这里插入图片描述
此外,代码快照图提供了一种可视化的方法来帮助我们分辨引用更改和值更改。

//因为String是不可变类型,这是改引用
String s = "a";
s = s + "b";

在这里插入图片描述

//这个是改值
StringBuilder sb = new StringBuilder("a");
sb.append("b");

在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章