1

我有两个紧密结合的班级群。为了解释起见,让我们称一个 theview和另一个 the templatetemplate告诉view如何看。我有一个基类view和基template类以及它们的许多配对子类。

所以,就像这样:

基类

BaseTemplate <-> BaseView

子类

TemplateA <-> ViewA
TemplateB <-> ViewB TemplateC <-> ViewC
TemplateD
<-> ViewD

views(甚至是 base view)每个都有一个对应类型的template, 作为变量。例如,如何将变量BaseTemplate, 声明于BaseView, 转换为TemplateB, 声明于ViewB我希望能够在 中设置变量信息BaseTemplate,而不必在所有模板子类中设置通用信息。

4

1 回答 1

1

听起来您可以使用泛型来解决此问题。例如:

public abstract class BaseView<T extends BaseTemplate> {

    private final T template;

    protected BaseView(T template) {
        this.template = template;
    }

    //common view methods operating using T etc.
}

public final class ViewA extends BaseView<TemplateA> {

    public ViewA() {
        super(new TemplateA()); //or wherever templates come from
    }

    // ViewA specific stuff
}
于 2013-04-25T22:39:12.570 回答