我已经编写了一个同时具有高级模式和初学者模式的程序,以使用户可以在实际使用我的程序之前掌握其窍门。除了需要用另一种方法替换的一种或两种方法外,高级模式与初学者模式几乎完全相同,因此我决定为高级模式和初学者模式类创建一个通用模式类以供使用,而不仅仅是应对代码:如果我的解释不太清楚,则为类结构:


    GUI类

    通用模式类
    
        初学者模式
        高级模式
    


假设常规模式类具有以下代码:

public class GeneralMode {

    private int range;
    private String id;


    public GeneralMode() {

    }

    public int getRange() {
        return range;
    }

    public String getID() {
    return id;
    }

    public void doStuff() {

    }

}


GeneralMode类是程序完成所有工作的地方。现在,我想这样做,以便高级模式类可以从GUI类中获取输入,并以与GeneralMode类相同的方式使用它。

谢谢你的帮助!

最佳答案

使“ GeneralMode”类成为抽象类,并使用必须由具体的“高级”和“初学者”类实现的抽象方法。
两种模式共有的功能可以在'GeneralMode'类中实现。

然后,在您的GUI类中,实例化正确的具体类,并将其放入“ GeneralMode”变量中。然后,您可以使用它,而不必知道程序是在初学者模式还是高级模式下运行。

伪代码:

GeneralMode mode = (UseAdvancedMode == true)? new AdvancedMode() : new BeginnerMode();

07-24 09:20