私のクラス C1 には、すべての静的メンバー (変数とメソッド) があります。また、観察可能なタイプ C2 のオブジェクトの配列 A1 も持っています。C1 を、C2 の変更を記録し、A1 に含まれる参照を使用してそれらの変更をオブジェクトに適用するオブザーバーにしたいと考えています。C2 オブジェクトのオブザーバーとして追加できるように、C1 のインスタンスを使用しています。
Observer-observable デザイン パターンはこの状況に適していますか? はいの場合、正しく適用していますか?
import java.util.*;
class FlightStatusChangeEvent{
int status;
Flight flight;
FlightStatusChangeEvent(int statusCode, Flight flight){
this.status = statusCode;
this.flight = flight;
}
public int getStatus(){return this.status;}
public Flight getFlight(){return this.flight;}
}
class Flight extends Observable{
int status;// 0 = on time, -1 = late, +1 = before scheduled time
public void updateStatus(int statusCode){
this.status = statusCode;
FlightStatusChangeEvent fsce = new FlightStatusChangeEvent(status, this);
setChanged();
notifyObservers(fsce);
}
}
class FlightStatusMonitor implements Observer{
public static ArrayList<Flight> flights = new ArrayList<Flight>();
//keep calling this method every 10 sec to get latest flight status
public void displayStatusOfFlights(){
//print all flight statuses in array list - flights
}
public void update(Observable flight, Object flightStatusEvent){
FlightStatusChangeEvent fsce = (FlightStatusChangeEvent) flightStatusEvent;
Flight fl = fsce.getFlight();
int status = fsce.getStatus();
//find the flight in array flights and then update its status
}
}