结合三个类来摆脱冗余

时间:2016-08-04 18:52:43

标签: java android

我的屏幕看起来像这样: click here to see image

这是基于以下代码:

  function  [X,Y] = linE(x1,y1,x2,y2,d)
    m = abs((y2-y1)/(x2-x1));
    theta = atand(m);
    X = x1+cumsum(d)*cosd(theta);
    Y = y1+cumsum(d)*sind(theta);

我想要做的是让用户点击他们想要使用的电源(屏幕底部出现的电源说明及屏幕顶部的当前选择)。然后能够点击“下一步”,他们可以选择他们的第二个加电,然后他们的第三个加电。每次选择上电时,选择再次上电的选项应该消失(意味着上电的图片应该消失)。他们也应该能够点击“返回”以重新选择之前的电源。

我现在通过三个不同的类来处理每个电源来实现这一目标。除了int选项之外,其他两个看起来与此类似(数字必须不同,因此它知道正在选择哪个加电)。因此,存在大量冗余并占用空间。我觉得这应该都能在一堂课上完成。我怎么能这样做呢?

1 个答案:

答案 0 :(得分:0)

  

除了int选项之外,其他两个看起来与此类似(数字必须不同,因此它知道正在选择哪个加电)。

你有几个选择。

一种方法是参数化" int选项"作为创建类时设置的内容,类通常引用它。

public class PowerupHandler {
    private int choice;
    public PowerupHandler(int choice) {
        this.choice = choice;
    }
}

另一种方法是创建一个执行相同操作的abstract类,但是子类只是在构造函数中设置数字而没有任何干预

public abstract class PowerupHandlerAbstract {
    private int choice;
    public PowerupHandlerAbstract(int choice) {
        this.choice = choice;
    }
}
...
public class PowerupHandlerTypeOne extends PowerupHandlerAbstract {
    public PowerupHandlerTypeOne() {
        super(3);
    }
}

我个人的偏好(当然取决于设置)将是抽象的路线,因为它对略读读者更有意义