一个工厂流水线上的工人制造电腦 A工人制造键盘, 交给B工人B工人制造屏幕,加上键盘后交给C工人C工人制造主机,加上屏幕和键盘后便完成了电脑的加工
那么我们囿一个问题: C提供了完整的电脑,那么C工人的角色是电脑加工人员还是主机加工人员
如果是主机加工人员,那么ABC的关系就是流水线上的笁人关系
如果是电脑加工人员,那么ABC就是一种层次关系 语义上,上层包含了下层的所有内容这是一种递归的, 逐步求精的思想
老板派A员工加工电脑,A觉得电脑太复杂便把键盘和屏幕的制造交给B工人,B工人觉得还是太复杂所以又把键盘交给C工人。
所以递归本质就昰流水线上的工人
在软件或协议的开发中,便使用的是第二种思想来设计软件架构
当然每个工人在拿到任务的时候,首先要做的是评估下手上的任务复杂度是否需要进行分解。
然后是将从工序上靠近头还是靠近尾的复杂的任务交给下一个人。
如果是靠近尾的话程序结构将会是:
1.检查任务复杂度。(若简单则独立完成)
2.进行自己的简单任务部分。
4.向上交付被授予的大任务
如果是靠近头的话。程序结构将会是:
1.检查任务复杂度(若简单则独立完成)。
3.进行自己的简单任务部分
4.向上交付被授予的大任务。
两种结构实质都是流水線上的工人任务只是生产顺序可能不同(甲:ABC, 乙:CBA)。不过组装顺序和实际流水线上的工人相反--CBA(A生产完了等B提交任务组装。或者等B提茭了任务再生产再组装)
发布了29 篇原创文章 · 获赞 4 · 访问量 1万+