这是一个非常学术的问题 - 我被指出我编写的WCF服务中的一个类非常长(约3000行),应该将其拆分为较小的类。
随着服务范围的不断增长,包含的方法包含许多相似的功能,因此我一直没有创建多个较小的类,现在我没问题可以这样做(除了需要花费的时间),但这让我想到了一个问题 - 相对于使用多个较小的类,单个大类是否会有显著的性能开销?如果有,为什么?
这是一个非常学术的问题 - 我被指出我编写的WCF服务中的一个类非常长(约3000行),应该将其拆分为较小的类。
随着服务范围的不断增长,包含的方法包含许多相似的功能,因此我一直没有创建多个较小的类,现在我没问题可以这样做(除了需要花费的时间),但这让我想到了一个问题 - 相对于使用多个较小的类,单个大类是否会有显著的性能开销?如果有,为什么?
这不会带来任何明显的差异。在考虑如此极端的微观优化之前,您应该考虑代码的可维护性,而一个大约有3000行代码的类是相当危险的。
首先编写正确且易于维护的代码。只有当您真正遇到性能问题时,才应该在做出任何关于优化的决策之前首先对应用程序进行性能分析。通常性能瓶颈将在其他地方被发现(缺乏并行处理,不良算法等)。
实际上,当我写作时,我发现我只是在揭示SOLID的方面。你最好阅读这篇文章以获取更多信息。
这取决于类的使用方式和实例化频率。当类只被实例化一次时,例如合同服务类,性能开销通常不会很大。
当类经常被实例化时,可能会降低性能。
但在这种情况下,不要考虑性能,而是考虑设计。最好考虑支持、进一步开发和可测试性。3K LOC的类非常庞大,通常是反模式的书籍。这样的类会导致代码重复和错误,进一步的开发将是痛苦的,并且已经修复的错误会一遍又一遍地出现,代码是脆弱的。
因此,类肯定应该进行重构。