我正在编写一个WCF服务应用程序,我已将WCF类隔离到他们自己的“表示层”中(缺少更好的术语)。然后在下面,我有一个应用程序层来编排域对象。
我喜欢这样一个事实:WCF技术都没有泄漏到应用程序层,因此我可以轻松地将其换成Web API(我已经考虑过)。然而,我担心的是它似乎打破了不重复自己的规则。 WCF层实际上已成为一个“代理”层,只是将调用交给应用层,保持相同的签名。
例如:
public void Method(string arg)
{
_appService.Method(arg);
}
这被杀了吗?我应该将逻辑移到WCF类中吗?
答案 0 :(得分:2)
在面向服务的应用程序中实施DRY原则时必须小心。通常,服务形成它自己的Bounded Context,您希望能够独立于其他服务中的业务逻辑来发展代码。此规则的例外是“实用程序”代码,它解决了整个垂直切片中的交叉问题。
关于您提供的具体示例 - 您已将逻辑与其托管方式分离。这不违反DRY,因为代码的上下文不同。
答案 1 :(得分:1)
我没有看到你做过的任何问题。正如那句老话所说,添加另一层抽象绝对不会出错。正如您所说,它可以很容易地将其换成另一个实现。