public class Presenter { private A a; private B b; private C c; private D d; private boolean autoUpdateEnabled = true; // デフォルトで自動更新はON public Presenter(A a, B b, C c, D d) { this.a = a; this.b = b; this.c = c; this.d = d; } public void updateGPS(double lat, double lng) { // AとBの状態を更新する a.updateValue(lat); // Aが持つ緯度情報を更新 b.updateValue(lng); // Bが持つ経度情報を更新 // 自動更新がONの場合のみ、地図の中心位置を更新する if (autoUpdateEnabled) { c.updateLatitude(lat); // 地図の中心位置の緯度を更新 d.updateLongitude(lng); // 地図の中心位置の経度を更新 } } // 自動更新のON/OFFを切り替えるメソッド public void setAutoUpdateEnabled(boolean enabled) { this.autoUpdateEnabled = enabled; } // 手動更新ボタンが押された時に地図の中心位置を更新するメソッド public void manualUpdate() { if (!autoUpdateEnabled) { // 自動更新がOFFの場合、手動で地図の中心位置を更新する c.updateLatitude(a.getValue()); d.updateLongitude(b.getValue()); } } }