正方形の周長 #22

正方形の諸元を表すSquareParametersクラスの持つパラメータが変更されたときに、
変更されたことを知りたい者に知らせる機構を付加する。
変更されたという出来事をここではjava.util.EventObjectクラスのサブクラスとして定義しておく。

SquareEvent.java
import java.util.EventObject;

public class SquareEvent extends EventObject {
    public SquareEvent(Object source) {
        super(source);
    }
}

とりあえずは、この出来事がどこで起きたか、その場所を表すsourceを持つようにしているだけである。
これはEventObjectと同じ機能なのでEventObjectに情報の保持を任せる。
そして、この出来事が起きたことを知りたい者が実装すべきインタフェイスを定義する。
それをここではjava.util.EventListenerのサブインタフェイスとしておく。

SquareListener.java
import java.util.EventListener;

public interface SquareListener extends EventListener {
    void squareChanged(SquareEvent e);
}

パラメータが変更されるたびに呼ばれるメソッドsquareChangedを定義しているだけである。
変更されたことを知りたい者はこのインタフェイスを実装すれば、
squareChangedメソッドの引数として渡されるSquareEventインスタンスでその出来事が起きた場所を知ることができる。