WF本质论 读书心得 1 剖析WF (下)
2008-02-24 23:33
225 查看
复合语句组件
接下来要做的是把OpenSesame分成若干小单元
第一次分割,将Read从OpenSesame中分离出来
OpenSesame中,调用了Read
这里的关键是,如何在Read完成执行后,通知调用者OpenSesame。
处理方法:在Read的Start/Run方法中使用一个书签,从而暂停了程序;Read执行完毕,最后一步恢复书签,通知了书签管理器BookmarkManager,激活了调用者OpenSesame的异步方法ContinueAt,使之得到了通知。
第二次分割,将剩余的OpenSesame割分为PrintKey和PrintGreeting
*注:每个活动的mgr都是属于自己本身的,之间没有联系
为此,建立活动的集合类ProgramStatementBlock:ProgramStatement,注意Run方法与ContinueAt方法的配合,使用了迭代技术; 以及通过runtime.RunProgram()方法,间接调用programStatement.Run(mgr)
最后,作一点小修改。注意到,ProgramStatementBlock仅仅是一个像{}样子的顺序流,此外还有其他的控制流(if,switch,for,while,foreach)——统称为复合语句组件,于是我们建立CompositeProgramStatement类,派生于ProgramStatement;而所有的控制流包括ProgramStatementBlock,都派生于这个复合类CompositeProgramStatement
接着创建了IfElse活动和While活动,以及Interleave活动。
其中,InterLeave活动,并行的执行它所包含的语句组件,直至全部执行完毕。
为了防止ProgramStatement的方法被外界随便调用,将其声明为protected internal,从而只能由书签管理器间接调用。
* Done()方法,仅限于每个活动中都仅有一个Bookmark,而且没有参数;不然,要重载Done()方法,加上bookmarkName和payload这两个参数
*注:为了让所有的OpenSesame()方法格式统一,现在一致使用Start()取代Run()方法,将所有的BookmarkLocation变量名统一为bookmarkLocation,由此在原书代码上有所修改,但是使整章风格一致。
接下来要做的是把OpenSesame分成若干小单元
第一次分割,将Read从OpenSesame中分离出来
OpenSesame中,调用了Read
这里的关键是,如何在Read完成执行后,通知调用者OpenSesame。
处理方法:在Read的Start/Run方法中使用一个书签,从而暂停了程序;Read执行完毕,最后一步恢复书签,通知了书签管理器BookmarkManager,激活了调用者OpenSesame的异步方法ContinueAt,使之得到了通知。
第二次分割,将剩余的OpenSesame割分为PrintKey和PrintGreeting
*注:每个活动的mgr都是属于自己本身的,之间没有联系
为此,建立活动的集合类ProgramStatementBlock:ProgramStatement,注意Run方法与ContinueAt方法的配合,使用了迭代技术; 以及通过runtime.RunProgram()方法,间接调用programStatement.Run(mgr)
最后,作一点小修改。注意到,ProgramStatementBlock仅仅是一个像{}样子的顺序流,此外还有其他的控制流(if,switch,for,while,foreach)——统称为复合语句组件,于是我们建立CompositeProgramStatement类,派生于ProgramStatement;而所有的控制流包括ProgramStatementBlock,都派生于这个复合类CompositeProgramStatement
接着创建了IfElse活动和While活动,以及Interleave活动。
其中,InterLeave活动,并行的执行它所包含的语句组件,直至全部执行完毕。
为了防止ProgramStatement的方法被外界随便调用,将其声明为protected internal,从而只能由书签管理器间接调用。
* Done()方法,仅限于每个活动中都仅有一个Bookmark,而且没有参数;不然,要重载Done()方法,加上bookmarkName和payload这两个参数
*注:为了让所有的OpenSesame()方法格式统一,现在一致使用Start()取代Run()方法,将所有的BookmarkLocation变量名统一为bookmarkLocation,由此在原书代码上有所修改,但是使整章风格一致。
相关文章推荐
- WF本质论 读书心得 1 剖析WF (上)
- WF本质论 读书心得 2 WF程序 下
- WF本质论 读书心得 2 WF程序 上
- WF本质论 读书心得 3 活动的执行
- 心得5-hibernate级联之一对一单双向剖析
- Chapter 7 -- SystemC From Gound 读书心得
- 【分享(笔试常考易错)】sizeof求数组长度的剖析心得
- 曾国藩的读书心得
- SharpDevelop浅析_3_Internationalization-TextEditor __ 读书心得
- 《软件评测师教程》读书心得 一
- [转帖] 读书心得2:如何最快地汲取营养 (作者: 时寒冰)
- JavaScript高级程序设计--读书心得
- 《EssentialWF》(第一章 剖析WF 1.1.1书签)补充
- STL源代码剖析 读书总结
- 一句话读书之STL源码剖析
- 销售洗脑读书心得
- OReilly.Hands-On.Machine.Learning.with.Scikit-Learn.and.TensorFlow.翻译以及读书心得--p41-53
- atitit 读书与获取知识资料的attilax的总结与心得 v6
- 软件架构师书籍及高效读书心得
- 央视陪你读书,文化名人谈读书心得,读什么让你每天精彩