WCF分离关注VS DRY

时间:2013-10-23 14:32:02

标签: c# wcf domain-driven-design dry separation-of-concerns

我正在编写一个WCF服务应用程序,我已将WCF类隔离到他们自己的“表示层”中(缺少更好的术语)。然后在下面,我有一个应用程序层来编排域对象。

我喜欢这样一个事实:WCF技术都没有泄漏到应用程序层,因此我可以轻松地将其换成Web API(我已经考虑过)。然而,我担心的是它似乎打破了不重复自己的规则。 WCF层实际上已成为一个“代理”层,只是将调用交给应用层,保持相同的签名。

例如:

public void Method(string arg)
{
   _appService.Method(arg);
}

这被杀了吗?我应该将逻辑移到WCF类中吗?

2 个答案:

答案 0 :(得分:2)

在面向服务的应用程序中实施DRY原则时必须小心。通常,服务形成它自己的Bounded Context,您希望能够独立于其他服务中的业务逻辑来发展代码。此规则的例外是“实用程序”代码,它解决了整个垂直切片中的交叉问题。

关于您提供的具体示例 - 您已将逻辑与其托管方式分离。这不违反DRY,因为代码的上下文不同。

答案 1 :(得分:1)

我没有看到你做过的任何问题。正如那句老话所说,添加另一层抽象绝对不会出错。正如您所说,它可以很容易地将其换成另一个实现。