这几天突然想到了工作流的设计, 虽然已经有了很多成熟的软件, 但是其设计的思想才是一个设计人员需要学习的,而不是知道如何用别人的软件。
想想以前做的一个审批流程的模块,我觉得体现了工作流的设计思想,但是没有消除对象之间的耦合关系,应该说不是一个成熟的模块。 经过我思考, 就算是一个审批流程模块, 也应该体现工作流模块与其他业务对象的松耦合关系, 应该采用接口的设计, 注册设计模式, 使得对象由工作流托管,而不是由对象本身主导流程的流转, 所以对象本身设计时应该没有任何与流程有关的属性信息, 而应该由工作流模块流程实例管理业务对象,这样才是应该真正的工作流软件。而且也符合软件设计的原则。