动态选择子类型类

动态选择子类型类

我有两个类(D和E),它们具有一些通用方法,唯一的区别是
D实例化一个单例(A),E实例化另一个单例(B)。

E继承自D,并且由于方法执行相同的代码,因此我想检查D是否应该创建A或B单例,以免在E中不重写每个常见方法的相同代码。

A和B继承自C抽象类...

有什么建议吗?

提前致谢...

//Check subtype
if ....
  A field = A.getInstance().getMethod();
else...
  B field = B.getInstance().getMethod();

field.set...

最佳答案

我认为最好的解决方案是创建接口C,并使AB实现此接口。在界面中声明要在DE中使用的方法,e。 G。:

public interface C {
    public void setThatImportantField(String value);
}


D中,添加创建单例实例的方法:

protected C createSingletonInstance() {
    return new A();
}


E中,重写此方法并返回B的新实例。现在,在D中的初始化代码中,您可以使用在接口中定义的方法:

protected void initSingleton() {
    C singleton = createSingletonInstance();
    singleton.setThatImportantField("test");
}

关于java - Android Java:动态选择子类型类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19630787/

10-10 03:16