我的应用程序中有很多服务类没有任何状态(任何字段,属性)但有方法。我应该将此类设置为静态还是创建此类的单个对象,并在整个应用程序的生命周期中使用单个对象
答案 0 :(得分:7)
如果需要实现接口或从其他类派生,则只需要此类为单例。如果您没有这种需要,请使用静态类。
答案 1 :(得分:3)
我应该将此类设为静态还是创建单个对象 在整个生命周期中使用单个对象 应用
将它们声明为static
类,所有方法都为static
。这将迫使您以后不要在代码中拥有实例成员。
您可能会看到:What is the difference between all-static-methods and applying a singleton pattern?
答案 2 :(得分:2)
单身人士可以实现接口,而静态类则不能。因此,如果您的代码将受益于接口(示例 - 依赖注入),那么使用单例其他明智的静态将冲突。
答案 3 :(得分:1)
在大多数情况下,您可以使类及其成员保持静态。
但是,如果您计划对服务类进行任何单元测试,那么您将需要一个实例,从而可以方便地使用接口。由于无法在静态类上实现接口,因此需要使用单例模式并实现接口。