Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Design patterns 在工作单元模式中共享代码_Design Patterns_Architecture_Unit Of Work - Fatal编程技术网

Design patterns 在工作单元模式中共享代码

Design patterns 在工作单元模式中共享代码,design-patterns,architecture,unit-of-work,Design Patterns,Architecture,Unit Of Work,这是一个一般性问题。我正在使用工作单元模式设计一个系统。是否有任何已建立的模式以单元可测试的方式展示如何在多个工作单元之间共享逻辑 下面是一个更具体的场景: 有一个采购订单 UnitOfWork1->提交采购订单供审批 UnitOfWork2->批准或拒绝采购订单并将其发送回提交人 两个工程单元共享相同的代码,例如: ShareLogic1->用户需要访问采购订单 SharedLogic2->将最后一个操作记录到采购订单 如果这样的逻辑可以在多个工作单元之间共享,我可以使用什么模式。虽然继承可以

这是一个一般性问题。我正在使用工作单元模式设计一个系统。是否有任何已建立的模式以单元可测试的方式展示如何在多个工作单元之间共享逻辑

下面是一个更具体的场景:

有一个采购订单

UnitOfWork1->提交采购订单供审批

UnitOfWork2->批准或拒绝采购订单并将其发送回提交人

两个工程单元共享相同的代码,例如:

ShareLogic1->用户需要访问采购订单

SharedLogic2->将最后一个操作记录到采购订单


如果这样的逻辑可以在多个工作单元之间共享,我可以使用什么模式。虽然继承可以解决这种情况下的问题,但我不想使用继承,因为它不适合所有情况。

将该逻辑放入一个类中,让两个工作单元都可以访问它。这两个示例似乎都属于PurchaseOrderRepository类。使用控制反转你可以模拟它。

这个模式叫做方法-)方法是一段可重用的代码。这不是我要问的。多个工作单元之间是否存在共享逻辑的模式?共享代码需要是可模仿的。将代码转储到一堆helper类中很容易,但这不是我想要的。我能想出的困扰解决方案是有一个业务逻辑工厂,它为工作单元所需的特定逻辑分类。我不确定这是否是最好的模式。我很确定这是一个常见的场景,我想知道其他人是如何解决这个问题的。我想你误解了UnitOfWork模式,UOF是一个范围,其中一系列操作可以被认为是原子的(简单地说),.NET TransactionScope类是UOC用于数据访问的一个示例。所以这是一个范围。从你写的东西来看,你似乎把UOC理解为某种工作流元素。要么你脑子里乱七八糟,要么我误解了你。如果是第一种情况,请尝试查看领域驱动设计应用程序的示例。我理解单位工作模式。我想你误解了我的问题。如果你不理解这个问题,请不要评论。