我目前正在使用界面中定义的大量方法的WCF服务。这些方法中的大多数是简单的CRUD操作,使用实体框架有一些逻辑,并且可以很容易地分成功能区域。只有一个文件接近1K行代码,我想将其拆分以保持可维护性。我正在考虑以下事项:
此外,根据功能区域或CRUD方法进行拆分会更好(组合在一起,共同创建等)。
在处理WCF服务时,这一定是一个非常常见的问题。组织WCF服务方法的好方法是什么?
更新
最后,我决定将服务调用传递给内部静态类。
答案 0 :(得分:8)
如果操作可以按功能区域分组,则它们应该是单独的服务,因为与任何其他类一样的服务应该具有单一责任=单个功能区域。
一般来说,如果您的服务有很多操作,那么现在是时候解决它了。此外,大多数情况下,WCF服务只包含某些逻辑,因此您可以创建包装逻辑的其他类的实例,或者在服务操作中使用静态类。
编辑:
一般来说,我反对使用部分类来打破一个大班 - 在我看来,它并没有提高可维护性。一旦一个类如此庞大以至于你正在寻找将其分解为多个文件的解决方案,那么它已经意味着很久以前就已经完成了重构。在最糟糕的情况下,当你的班级做得太多时,我们可以称之为反模式:God object。
答案 1 :(得分:2)
为了可维护性,使用部分类似乎是一个不错的选择。如果它们在功能上是分开的,则可维护性得到改善,因为您只需要查看其中一个或两个类。
根据你的答案,仍然有一个庞大的课程有很多方法的事实并不是真正的问题。它应该是可维护的。
但是,要关注@Ladislav,将它们分成不同的服务对你有什么价值吗?我没假设,否则你会这样做。