利用VS生成的时序图考虑时序图该画写什么

       为了研究时序图究竟如何画,自己写了个经典三层的登录小例子以及一个加上抽象工厂和反射的三层登录小例子,运用VS的生成时序图功能,将代码生成时序图,研究时序图究竟需要什么元素.由于VS生成的时序图,会将所有的If,Try这些具体的信息都显示进去,而为了尽量简单,又为了登录能运行,把原本属于B层的逻辑移到了U层;而SqlHelper层的Try-Catch被取消.最后的结果如下图所示.
      首先介绍的是用经典三层架构的登录小例子.
      这里介绍下:frmLogin为UI层的类,是界面;LoginBLL为BLL层的类,UserEntity为实体层的类,UserDAL为DAL层的类,SqlHelper这次没有拿出来作为单独的层,而是直接放在了D层中.我觉得两种放法都是可以的,但是具体的不同没细究.

利用VS生成的时序图考虑时序图该画写什么_第1张图片
 

       看这幅时序图,发现VS会将对象的创建等过程都绘制出来,如最上面的创建LoginBLL的对象bllLogin;而如果真的是在开发系统之前的设计,这些对象的名字是不可能当时就写好给你的.所以需要将这些创建都去掉,简化时序图.如下图
利用VS生成的时序图考虑时序图该画写什么_第2张图片
      从界面的按钮开始,调用B层的CheckUserIDCorrect方法,然后B层这个方法,又调用DAL层的SelectUserCorrect方法;接着D层的这个方法,又调用SqlHelper类中的ExecuteSelect方法,实现数据库的带参数的查询;
      然后还有生命周期的问题,在VS生成的时序图中,只要这个对象不再使用,则它的生命周期结束.所以我觉得,如果是经典三层,则时序图画成下面这样就挺好的.当然每个对象的对象名也不必在画时序图时就写出来.如下图中B层的bllLogin这个对象名,就可以不写;

        但是由于系统经常会使用设计模式,如抽象工厂加反射,如果是这样,时序图该如何画 .
        写好了小例子,用VS生成时序图,
发现D层和SqlHelper 没有了.为了图的简洁, 删除了创建对象的过程,然后把实体层对象也给删除了,就剩下这样一幅图.介绍下DataAccess是Factory层的.
利用VS生成的时序图考虑时序图该画写什么_第3张图片

       和上幅图对比,前两个对象基本一样,后面的D层和SqlHelper对象不再显示,取而代之的是工厂类和IDAL层对象.后面的D层不显示是因为,架构的时候,没有任何一层引用了D层.所以到IDAL层就时序图就结束了.
       生命期也是一样,从调用开始,到返回信息给上一层,则对象的整个生命周期结束.
   

你可能感兴趣的:(利用VS生成的时序图考虑时序图该画写什么)