技术开发 频道

实战每晚构建之设计和实现

【IT168 技术文章】

    本文是实战每晚构建系列的第三篇,利用第二篇文章中叙述的开源技术对第一篇中的分析模型进行设计和实现。

    1、构建信息显示系统的设计

    这是一个典型的web应用系统,不过非常简单。根据《面向对象的系统分析和设计》所描述的,设计主要对四个部分进行描述:

    ·问题域的细化:考虑将来实现语言的特性和利用某些设计模式,对分析模型进行细化,并作某些权衡。实现对未来系统"如何做事情"的描述。

    ·人机界面设计:考虑和使用者的交互,对信息显示的布局和接收用户指令或数据的行为进行设计。

    ·存储设计:考虑如何保存业务数据,主要考虑现在的存储方式,同时也要考虑未来存储方式的可能变化,即业务对象和存储方式的耦合性问题。

    ·系统接口设计:主要考虑本系统和外在系统之间的合作协议,特别是不要忘了和操作系统或驱动程序的接口。

    1.1 分析模型的细化

    我们在分析模型中没有考虑实现的问题,现在我们必须细化构建信息显示系统的分析模型,使之达到可实现之地步。

    根据前面velocity模版系统地介绍,我们扩充一下显示系统的类图。如下面的"显示系统设计类图"可知,由于Java语言不支持多继承,而且原来分析模型的BuildInfoLog类只有成员变量,我们把这个类改变成Java语言当中的接口来实现,我们把NightlyBuild变成了实现这个接口的一个类,因此同样拥有BuildInfoLog的数据成员。另外NightlyBuild还继承了Java.util.Hashtable类,使得其表现为一个哈西表,这个哈西表以项目的名字为Key,以该项目的构建标签列表为值。根据MVC模式的精神,NightlyBuild类是个业务对象类,应该从信息显示的格式化功能中解放出来,所以NightlyBuild类原来的list_ Buildinfo_table方法放到buildinfo_list.vm模版文件中实现。同时我们增加了一个NightlyBuildServlet类来响应构建信息关心者的访问需求,它是velocity中VelocityServlet类的子类,因此NightlyBuildServlet任MVC模式中的控制角色。

    在下面的"显示系统MVC视图"中可以看出,业务对象NightlyBuild对象以nightlyBuild的名字保存在模型context中,当控制NightlybuildServlet用模版文件buildinfo_list.vm来满足构建信息关心者浏览构建信息目录的要求时,buildinfo_list.vm文件格式化保存在context中的NightlyBuild对象的信息并形成视图供浏览者浏览。


0
相关文章