我真的很喜欢使用静态方法(特别是对于helpers类)。但是,由于静态方法不可能存在,最终它们是一种不好的做法,不是吗?所以我必须在静态方法的使用方便性和可测试性之间进行选择。有没有妥协?静态或不静态
Q
静态或不静态
1
A
回答
9
这取决于静态方法的作用。
这是否真的必须是残骸?像数据访问,长时间运行的操作等等,还是你的意思是像.ToSlug()这样的辅助方法?
如果是前一种情况,我会让他们成为实例方法来提高测试的可测试性/速度。
如果是后者,我会让它们静止并验证它们的正确性。
2
如果您可以保证静态方法总是返回给定输入的相同结果,并且它们存在的唯一原因是帮助方法(转换或转换输入 - >没有sideeffects的输出),我没有看到问题。对于额外的踢,你可以让他们的扩展方法(从C#3.0)。
相关问题
- 1. Python静态或不静态
- 2. 静态或静态最终
- 3. 使用静态或非静态类
- 4. c#静态或非静态类
- 5. 构造是静态或非静态
- 6. 让GUI静态或不是
- 7. 静态或动态ips
- 8. 静态或动态数组
- 9. C#静态类 - 静态类不能有非静态成员
- 10. 静态或私人
- 11. 静态...不是真的静态
- 12. PHP静态不是那么静态
- 13. 静态Mutext和不是静态互斥
- 14. 不能使静态方法非静态
- 15. 静态和非静态
- 16. 静态与非静态类
- 17. 静态静态方法?
- 18. 静态/静态问题Java
- 19. 静态主类静态类?
- 20. 静态方法或使用静态字段的非静态方法
- 21. 静态类中的静态变量和非静态类中的静态变量
- 22. 不能使静态参考非静态场......但我不是在静态参考
- 23. 覆盖静态成员和“静态静态数组”
- 24. 静态工具操作的静态类与静态结构?
- 25. 静态块vs静态方法 - 初始化静态域
- 26. 通过静态和非静态方法访问静态属性?
- 27. 静态
- 28. JPA EntityManager静态或实例?
- 29. 静态方法或超
- 30. 单身或静态类
同意。顺便提一下这个问题。 例如,您可能还想阅读: http://stackoverflow.com/questions/731763/should-c-methods-that-can-be-static-be-static http://stackoverflow.com/questions/1184701 /静态-VS-非静态方法 – SirLenz0rlot 2010-06-06 10:26:45