正方形の周長 #7

一つで全てをこなせるクラスができあがってよきかなよきかな。
というわけで今度は無駄にたくさんのクラスを作って混沌へと還元していく。
まずは正方形の諸元を表現するクラスを定義する。

public class SquareParameters {
    private double side = 0;

    public double getSide() {
        return side;
    }

    public void setSide(double side) {
        checkSide(side);
        this.side = side;
    }

    public double getPerimeter() {
        return side * 4;
    }

    public void setPerimeter(double perimeter) {
        setSide(perimeter / 4);
    }

    private void checkSide(double side) {
        if (side >= 0) return;
        throw new IllegalArgumentException("invalid length of the side: " + side);
    }
}

辺の長さが0とか正の無限大な正方形は正当としていいかは別として、
負の長さや非数は除外できるようにチェックをかけている。