- это общая практика, чтобы иметь аргументы в подписи метода для единственной цели выполнения договора

Мне немного любопытно о некоторых из кода, который я видел в школе, и именно ли это обычная практика в поле или просто плохой дизайн.

Рассмотрим следующий интерфейс и два класса, которые его реализуют ...

public abstract interface Anchor
{
    public abstract double x(double x);

    public abstract double y(double y);
}

Уведомление в классе цикла Аргументы в X () и Y () на самом деле используются ...

public class Cycle implements Anchor
{
    public Anchor anchor;
    public double radius;
    public double period;
    public double phase = 4.0D;

    public Cycle(Anchor anchor, double radius, double period) {
        this.anchor = anchor;
        this.radius = radius;
        this.period = period;
    }

    public double angle(double day) {
        return this.phase * 3.141592653589793D * (day / this.period) / 2.0D;
    }

    public double x(double x) {
        return this.anchor.x(x) + Math.cos(angle(x)) * this.radius;
    }

    public double y(double y) {
        return this.anchor.y(y) + Math.sin(angle(x)) * this.radius;
    }
}

, но здесь в центре класса Аргументы в X () и Y () существуют исключительно для выполнения контакта с интерфейсом якоря и на самом деле не используются в методе ...

public class Center implements Anchor
{
    public double x;
    public double y;

    public Center(double x, double y) {
        this.x = x;
        this.y = y;
    }

    public double x(double x) { return this.x; }
    public double y(double y) { return this.y; }
}

Это то, что вы увидите общно в производстве Java Code? Это принятая практика или плохая работа вокруг?

5
задан Anthony Jack 26 September 2011 в 03:43
поделиться