怎样设计多步骤脚本的结构

DarkMatter 2011-04-11 08:36:25
对于下面这种结构的脚本,大家一般会怎样设计呢?

def 步骤1:
子变量1 = ...
子变量2 = ...
def 子步骤1:
pass
def 子步骤2:
pass

def 步骤2:
def 子步骤1:
pass
def 子步骤2:
pass
...
def 子步骤n:
pass

...

def 步骤n:
pass

全局变量1 = ...
...
全局变量n = ...
#主程序开始
if 步骤1成功:
步骤2
步骤3
...
步骤n

这种脚本的特点是由一系列步骤(指令)组成,每个步骤又可划分为多个子步骤,我之前将所有这些步骤写在一个模块里,一个步骤定义在一个函数中,子步骤定义为嵌套函数,整个模块大于1000行,使得维护变得很困难。用这个脚本处理相似目标时,需要修改变量的值,以及某个子步骤的实现逻辑,直接修改源代码显然是很低效的方法。请教一下各位高手,是否应该将每个步骤写在单独的模块里,然后由一个main模块分别调用各个步骤模块?为了提高脚本的复用性,是否应该将变量的默认值和步骤的抽象逻辑定义成抽象类,然后将具体的实现逻辑放在子类里完成?有没有这种多步骤代码的设计模式可供借鉴?

谢谢!
...全文
88 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhenzhen_08 2011-04-19
  • 打赏
  • 举报
回复
我现在用python也会出现写出多个类似脚本的情况,只有靠自己边学习边改进代码了,祝楼主能早日找到解决冗余代码的办法!
notax 2011-04-12
  • 打赏
  • 举报
回复
有限状态机
iambic 2011-04-12
  • 打赏
  • 举报
回复
泛泛的问题,只能得到一个泛泛的答案。问怎么解决重复代码,答用设计模式。答的是废话,因为问的也是废话。
解决软件设计问题万古不变的唯一核心思想:分析代码中的冗余部分,把冗余的部分合并。说起来这么简单,需要你自己去身体力行。你要分析哪里重复了,怎么把重复的归并一起。而这关键的部分别人是不大能提供帮助的(除非问题很完整),要你自己去追求,自己去解决。设计模式都只是例子,可以作为参考,不能作为工具或者准绳。
I_NBFA 2011-04-11
  • 打赏
  • 举报
回复
搞这么多"子步骤"做啥???
苍蝇①号 2011-04-11
  • 打赏
  • 举报
回复
用类到多态性把变性封装起来,楼上的说得对还是看看设计模式吧
蒙奇D路飞 2011-04-11
  • 打赏
  • 举报
回复
看看设计模式吧 应该会找到答案。求人不如求己

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧