我在我的基本抽象类和静态getters/setters中使用静态成员变量。这里是我的阶级结构:在抽象类中使用静态变量
public abstract class Parent{
private static XmlService xmlService;
//getters and setters for xmlService
}
这xmlService在子类用于XML转换等等。然而,在运行时根据使用其他服务的数据创建的子类的实例。现在我想用junit进行测试,并且需要模拟xmlService。如果我不使它成为静态的,我没有看到用mock初始化xmlService的任何方法。
所以我的问题是,这种方法(静态+抽象)是好的,或者它打破了任何OOP概念等。我没有看到这个问题,但只是想要一个意见。
感谢
编辑:我想根据意见,我会检讨我的设计,最有可能将与构造器注入的方式去
可能是一个错字,但这是一个无效的声明语句。可能缺少变量的类型。 –
你是否需要它是静态的,或者只是为了方便测试而使它变为静态的?如果除了测试之外,你不需要它是静态的,那么把它变成静态的几乎肯定是错误的。通常最好通过构造函数传递依赖关系。 –
及其唯一的测试,这似乎对我来说可疑 – csn