• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

跨越边界: 延续、Web 开发和 Java 编程

发布: 2008-6-19 13:33 | 作者: 不祥 | 来源: developerworks | 查看: 67次 | 进入软件测试论坛讨论

领测软件测试网

但是,状态机(state machine)是不错的延续方式。状态机是一种定义了状态之间的转换的程序。到目前为止,具有延续服务器特征的最流行的 Java 框架是 Spring 的 Web Flow。Web Flow 采用状态机形式对用户界面页面之间的导航进行建模。Web Flow 可以将程序流建模成 Java 对象,但是常常使用 XML 来描述程序流。请考虑清单 3 中来自 Web Flow 教程(参见 参考资料)的程序流表示:


清单 3. Web Flow 程序流表示


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE webflow PUBLIC "-//SPRING//DTD WEBFLOW//EN"
        "http://www.springframework.org/dtd/spring-webflow.dtd">

<webflow id="myFlow" start-state="displayForm">

    <view-state id="displayForm" view="form">
        <entry>
            <action bean="myFlowAction" method="setupForm"/>
        </entry>
        <transition on="submit" to="processSubmit">
            <action bean="myFlowAction" method="bindAndValidate"/>
        </transition>
    </view-state>

    <action-state id="processSubmit">
        <action bean="myFlowAction"/>
        <transition on="success" to="finish"/>
    </action-state>
       
    <end-state id="finish" view="success"/>

</webflow>
 


这个流程有三个核心状态:displayForm、processSubmit 和 finish。这个程序流定义了使机器从一个状态转换到下一个状态的动作。例如,submit 将状态从 displayForm 转换到 processSubmit。Web Flow 在典型的模型-视图-控制器级别上操作。可以使用许多不同的视图技术来显示表单。

当从一个状态转换到下一个状态时,框架自动捕获当前状态,包括所有实例变量。这样就可以获得与其他延续服务器一样的 Back 按钮支持和有状态编程模型。这种方式不使用本机延续,但是具有延续服务器的许多优点,还有其他一些优点:

持久性。 尽管不能捕获整个调用堆栈,但是可以捕获当前执行状态,甚至可以持久存储当前状态。


长期存活的程序流,比如工作流。 因为状态不依赖于给定的调用堆栈,所以这种方式对于长期工作流这样的东西更稳定。


工具。 很容易为 XML 构建工具。

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网