以流程设计为向导的现实代码(引以为戒!)

原创 2007年09月11日 16:42:00
我在上一篇blog中写了以流程为向导和以数据为向导的设计,有点抽象。今天在检查客户提出的一个性能问题时,发现这个问题的根源其实就是以流程为向导的设计导致的。出于保密的考虑,我下面用伪代码的形势把那个设计表现出来。

在客户的框架中,提供了一个接口方法:
public Customers[] SearchCustomers(string ids);
这个方法的调用会消耗较多的时间。客户在他们的跟踪器中发现在一个查询操作中,这个方法被调用了两次。显然如果改进设计,让它只被调用一次,会对系统的性能有很大的提升。

如果从流程的角度来考虑,这种设计是合理的。
private void LoadObjects()
{
.........................

CommonUtility.CheckClientInfo(clientIDs);//这是一个静态方法,用于检查customer信息

CheckClientOnView(res);//这是一个成员方法,用于检查 customer在当前实例中的状态。

............................
}

上面两个方法中,都调用了SearchCustomers方法。
为什么说上面这段代码是以流程为向导,因为customer数据本身并没有方法来维护其状态,customer状态的判断是以流程的要求来设计的。即业务流到哪里,对customer数据状态的判断就到哪里。这样,获取两份customer数据来判断是完全合理的。

但实际上,这种设计代码来很多的问题,上面就是其中的一种。

关于这个问题,我很希望能够和更多的朋友讨论。我是一个很认真的程序员,我很希望把这个问题搞清楚
联系QQ:64528619;MSN:czy@vip.163.com

流程设计 开发 向导

  • 2012年04月05日 23:09
  • 91KB
  • 下载

6 天时间修改 1 行代码:现实中的软件开发流程

前言 企业中,产品研发是一项综合性的工作,需要多个部门参与。但往往会出现各种各样的问题,如部门协作困难、全局监控难等,这困扰着大多数的企业。 真实案例 菲利普(主 席):我们工厂中有...

JAVA模板方法设计模式(从现实生活角度理解代码原理)

概述: 定义一个功能的框架(骨架),一部分功能是确定的,一部分功能是不确定的,先把确定的部分实现,把不确定的部分延迟到子类中实现。 实现该模式的关键步骤: 第一步:抽象类,实现模板方法,定义...

技术记录----开机向导的问题解决以及流程整理

通过梳理开机向导不能再刷机启动的问题,来更清晰的梳理分析开机向导的流程。...
  • ilygjl
  • ilygjl
  • 2016年03月31日 22:48
  • 1435

ARM7启动代码设计方法与流程.pdf

  • 2010年04月08日 23:01
  • 178KB
  • 下载

CMCC 终端入库流程向导

  • 2017年11月22日 10:35
  • 3.03MB
  • 下载

SharePoint无代码工作流设计开发实例——交通费报销流程(三)

4、SharePoint Designer无代码工作流的设计 开发工具为SharePoint Designer 2010 新建“列表工作流”,绑定“交通费报销单”表单库 设置工作流启动选项“创...

SharePoint无代码工作流设计开发实例——交通费报销流程(一)

开发环境: (1)SharePoint Designer 2010 (2)SharePoint Online(Office 365) 关于Office 365和SharePoint Online的相关...

SharePoint无代码工作流设计开发实例——交通费报销流程(二)

3、InfoPath表单的设计及发布 (1)数据源和页面设计 域(元素)和域(属性)如下: 白色为域(元素),该类型的字段,发布时,提升成字段后,列表库的数据是不可以被编辑的 蓝色为域(属...

springmvc+activiti 完美整合- 流程在线设计+代码生成器+UI快速开发库,提高一半的开发效率

JEECG(J2EE Code Generation) 是一款基于代码生成器的智能开发平台,采用代码生成+手工MERGE半智能开发模式, 可以帮助解决Java项目60%的重复工作,让开发更多关注业务逻...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:以流程设计为向导的现实代码(引以为戒!)
举报原因:
原因补充:

(最多只允许输入30个字)