流动的程序设计流程面向对象编程实践
流动的程序设计流程,算是我最近看到比较有意思的一种代码结构设计思路了。它靠面向对象那套“抽象、封装、继承”三板斧起手,先把仓库系统拆成货物
、库房
、保管员
这几个角色,各自管好自己的属性和行为,代码层级分明,维护起来也清晰不少。
像库房
这种对象,早期只管库存操作,其他都靠保管员
来触发提醒,结果一更新需求,比如加个条形码识别,它就变得越来越臃肿,整个逻辑纠缠不清,改一行牵一堆——是不是熟悉?
这时候作者引入了“工场对象”,思路就清爽多了。工场干一类事,比如说“入库流程”、“清单出库”,而且只开放一个入口。你只管把货扔进来,剩下就按流程走,不会乱。通过继承工场,小程整出了一个库房工场
,像流水线一样自动,代码结构也干净了不少。
更妙的是,流程还能配置在外部文件里,变需求也不用改代码了。只改配置,系统就能跑出新逻辑,扩展性一下子就上去了。这种模式在那种需求天天变、老板说改就改的项目里,简直救命稻草。
另外一个亮点是用了单例模式,尤其在记录流水账这块挺实用,保证你拿到的总是同一个账本对象,状态不会乱。结合预置工场,整个系统的流程管理就变得又稳又灵活。
如果你平时也在搞JavaScript或者其他支持面向对象的语言,遇到那种越改越烂的老项目,不妨参考下这种“流动式”的流程封装,挺适合救场的。想补补相关概念,可以看看下面这些资料,讲得都还不错:
下载地址
用户评论