2011-12-23 42 views
0

这是一个普遍问题。我正在设计一个使用工作单元模式的系统。是否有任何已建立的模式,以单元可测试的方式阐述如何在多个工作单元之间共享逻辑?工作单元模式中的共享代码

这里有一个更具体的方案:

还有了一个采购订单,其

UnitOfWork1 - >提交PO审批

UnitOfWork2 - >批准或拒绝采购订单,并把它送回提交

这两个作品单元共享相同的代码,如:

ShareLogic1 - >用户需要具有PO

访问

SharedLogic2 - >记录的最后一个动作到PO

什么图案(多个)我可以使用其中这样的逻辑可以在多个之间共享工作单位。尽管在这种情况下继承可以解决问题,但我不想使用继承,因为它不适合每种情况。

+0

这种模式被称为方法 - )方法是一段可重复使用的代码。 – 2011-12-23 07:53:40

+0

这不是我所问的。在多个工作单元之间是否存在共享逻辑的模式?共享代码需要可嘲弄。它很容易将代码转储到一堆帮助类中,但这不是我所期待的。我能够想出的beset解决方案是拥有一个业务逻辑工厂,该工厂针对工作单元要求的特定逻辑进行分类。我不确定这是否是最好的模式。我很确定这是一种常见的情况,我想知道其他人如何解决这个问题。 – Anish 2011-12-23 13:51:58

+0

我认为你误解了UnitOfWork模式,UOF是一系列操作可以被视为原子的范围(简单来说),.NET TransactionScope类是数据访问的UOC的一个例子。所以这是一个范围。从你写的内容看,你认为UOC是某种WorkFlow元素。 – 2011-12-23 14:00:57

回答

0

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