你如何在序列图中表示 this.println?
how do you represent this.println in a sequence diagram?
public class ReportPrinter {
public static void printStudentReport(Student s) {
CorsoDiLaurea cdl = s.getCorsoDiLaurea();
Carriera c = s.getCarriera();
String a = s.getInfoAnagrafiche();
this.println (a + "\n" + cdl.detailString() + "\nCarriera:");
for(EsameSostenuto e: c.getEsamiSostenuti() ) {
this.println(e.nome + "-" + e.cfu + "-" + e.getVoto() );
}
this.println ("Media: " + c.get.Media() );
}
/*any code omitted */
}
我或多或少地找到了这个解决方案(如下),但它是如何管理的? println 方法是 System.Out 的一部分,因此您需要创建一条生命线?
嗯,是的。和不。这始终取决于您的听众。 SD 并非用于图形化编程,而是用于显示(或多或少)对象之间的协作。最好只有复杂的。因此,您要求的是琐碎的事情。可能没有人对 println 将如何在系统胃中工作感兴趣。除了你想实现 println 本身。所以有三种方法。您可以为相应的系统对象创建生命线并将其作为消息传递。或者您只需 (!) 添加一个注释,说明结果将被打印出来。最后你可以跳过它。 println itsef 将(我猜)最不感兴趣,你更多的是关于它的数据的来源。
简而言之:不要过度使用 SD。吻
N.B。图表中的创建消息略微向上。那不太好(我还没有检查这是否真的错了)。但是时间在 SD 中下降。所以那将是一次时光倒流。消息要么是直接的,要么是关闭的(如果你想显示一些时间限制)。
public class ReportPrinter {
public static void printStudentReport(Student s) {
CorsoDiLaurea cdl = s.getCorsoDiLaurea();
Carriera c = s.getCarriera();
String a = s.getInfoAnagrafiche();
this.println (a + "\n" + cdl.detailString() + "\nCarriera:");
for(EsameSostenuto e: c.getEsamiSostenuti() ) {
this.println(e.nome + "-" + e.cfu + "-" + e.getVoto() );
}
this.println ("Media: " + c.get.Media() );
}
/*any code omitted */
}
我或多或少地找到了这个解决方案(如下),但它是如何管理的? println 方法是 System.Out 的一部分,因此您需要创建一条生命线?
嗯,是的。和不。这始终取决于您的听众。 SD 并非用于图形化编程,而是用于显示(或多或少)对象之间的协作。最好只有复杂的。因此,您要求的是琐碎的事情。可能没有人对 println 将如何在系统胃中工作感兴趣。除了你想实现 println 本身。所以有三种方法。您可以为相应的系统对象创建生命线并将其作为消息传递。或者您只需 (!) 添加一个注释,说明结果将被打印出来。最后你可以跳过它。 println itsef 将(我猜)最不感兴趣,你更多的是关于它的数据的来源。
简而言之:不要过度使用 SD。吻
N.B。图表中的创建消息略微向上。那不太好(我还没有检查这是否真的错了)。但是时间在 SD 中下降。所以那将是一次时光倒流。消息要么是直接的,要么是关闭的(如果你想显示一些时间限制)。