是否存在将工作准备与执行分开的设计模式?
一些例子:
基本模式是有一个'Planner'对象将任务分解为可以单独执行的'Work Items'。
我只是好奇,我希望一个已知的设计模式可以帮助与其他开发人员沟通,也许会给我一些改进设计的想法。
答案 0 :(得分:2)
你说
“基本模式是有一个'Planner'对象将任务分解为可以单独执行的'工作项'。”
这表示您可能想要Command Pattern之类的内容。一个简单的实现只涉及定义接口,使用单个方法“命令”,以及创建子类。我非常喜欢这种模式,因为它很容易实现,并且命令很容易单独测试。
您也可以查看Composite Pattern。如果适用,您可以创建CompositeCommand抽象类。这提供了一种执行组成任务的所有命令的简洁方法。此外,它真的很容易实现。
你的“Planner”对象会创建满足工作的复合命令(或者只是你不想使用复合的命令列表)......
答案 1 :(得分:1)
在分布式系统中,您经常会看到代理或调度程序将工作分配给工作人员或代理人;调度程序可以通过对工作负载的一些了解来实现,并且能够将其拆分,或者可以只管理从队列中分配任务到工作人员。
我还没有找到此模式的共享说明或名称 - 但请看一下这里的起点:Master-Worker pattern in distributed computing。