现在的位置: 首页 > 综合 > 正文

9月3日培训日记

2013年08月05日 ⁄ 综合 ⁄ 共 1247字 ⁄ 字号 评论关闭

今天下午又去听了一会梁老师讲课,以及问了一下学员们上午讲解的知识,收获如下:
1.每个Activity有三个方法:active(激活,设置自己为激活状态,并判断前置节点是否Complete,是执行execute,否则停下来(即什么也不干)),execute(执行,设置为执行状态,并执行具体的任务),complete(完成,设置自己为完成状态,并调用下一个Activity的active方法)
为了便于子类执行不同的业务逻辑,但又能共用相同的业务逻辑,抽象出doActive方法,doExcecute方法、doComplete方法。
2.HumanTask与AutoTask的设计思想(要各来一个子类吗?本系统中没有)autoTask的属性指向一个方法名(表示执行那个方法),HumanTask指向的是一个userid(任务将由哪个用户办理)
应该为Expression分配的方法,设计思想:addNext(boolean b,Activity activity),setExpression(String expression),getExpression()。
3.在一些Activity中有了额外的属性以后,再次引出了Wrapper设计模式,把xml文件中的nextids属性变成Activity对象,然后把这个Activity对象传递给前置Activity对象,而不是直接把nextids属性传递给前置Activity对象,中间用一个Wrapper类来实现,这可以避免改变现有的域模型,而采用多种形式配置方式,例如,改变XML文件的结构,而不用修改现有的域模型。
4.在String的split方法中要注意“|”的问题,课堂上正好遇到了。应该把分离0003|0004作为一个精典案例收入,并以此讲解eclipse的调试。在eclipse中如何调式程序
5.把humantask序列化到文件中,因为整个工作流都要可能需要序列化。
6.再次引出了摸板方法设计模式来重构整个系统的设计:
abstract class WfObjectWrapper
{
 public void setName(string name)
 {
  getWfObject.setName(name);
 }
 
 public abstact WfObject getWfObject()
 {
  
 }
}

public class WorkflowWrapper
{
 public WfObject getWfObject()
 {
  ruturn workflow;
 }
 
        Workflow workflow = new Workflow();
}

7.我今天发现学员们对如何设计一个解决真正问题的类还把握得不太好,甚至不知道一个类应该接受什么样的参数信息和怎样为这个类设置参数信息。其实很简单的道理,首先搞清楚这个类要解决什么问题,解决这个问题需要知道哪些前置条件和可选条件,将这些条件作为类的构造方法或set方法传递进去即可,显然,这个类需要提供相应的set方法或构造方法。

抱歉!评论已关闭.